vizLayer_cartoCSS_point.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <!--********************************************************************
  2. * Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.
  3. *********************************************************************-->
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="utf-8">
  8. <title data-i18n="resources.title_cartoCSSPoint"></title>
  9. <style type="text/css">
  10. body {
  11. margin: 0;
  12. overflow: hidden;
  13. background: #fff;
  14. width: 100%;
  15. height: 100%
  16. }
  17. #map {
  18. position: absolute;
  19. width: 100%;
  20. height: 100%;
  21. }
  22. #toolbar {
  23. position: absolute;
  24. top: 50px;
  25. right: 10px;
  26. text-align: center;
  27. z-index: 100;
  28. border-radius: 4px;
  29. }
  30. img {
  31. margin-left: 2px;
  32. height: 30px;
  33. width: 30px
  34. }
  35. #firstImg {
  36. margin-left: 5px;
  37. }
  38. #lastInput {
  39. margin-left: 16px;;
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <div id="toolbar" class="panel panel-primary">
  45. <div class='panel-heading'>
  46. <h5 class='panel-title text-center' data-i18n="resources.text_cartoCSSPoint">点符号</h5></div>
  47. <div class='panel-body content'>
  48. <div class='input-group'>
  49. <label id="text" data-i18n="resources.text_choosePointType">选择点类型:</label>
  50. <img id="firstImg" src="./images/marker_red.png">
  51. <img src="./images/marker_black.png">
  52. <img src="./images/marker_blue.png"> <br/>
  53. </div>
  54. <div class='input-group' style="padding-left: 99px;">
  55. <input type="radio" class="btn" name="image" value="marker_red" onclick="selectPoint(this.value)"/>
  56. <input type="radio" class="btn" name="image" value="marker_black" onclick="selectPoint(this.value)"
  57. style="margin-left: 18px"/>
  58. <input id="lastInput" type="radio" class="btn" name="image" value="marker_blue"
  59. onclick="selectPoint(this.value)" style="margin-left: 18px"/>
  60. </div>
  61. </div>
  62. </div>
  63. <div id="map"></div>
  64. <script type="text/javascript" include="bootstrap,widgets.alert" src="../js/include-web.js"></script>
  65. <script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
  66. <script type="text" id="textData">
  67. #World_Continent_pl___China{
  68. polygon-fill:#666;
  69. }
  70. #China_ProCenCity_pt___China{
  71. point-file:<%=pointFile>;
  72. point-offset-y:<%=offsetY>;
  73. }
  74. </script>
  75. <script>
  76. var map, layer, cartoCss,
  77. host = window.isLocal ? window.server : "https://iserver.supermap.io",
  78. url = host + "/iserver/services/map-china400/rest/maps/China";
  79. init();
  80. function init() {
  81. if (!document.createElement('canvas').getContext) {
  82. widgets.alert.showAlert(resources.msg_supportCanvas, false);
  83. return;
  84. }
  85. map = new SuperMap.Map("map", {
  86. controls: [
  87. new SuperMap.Control.ScaleLine(),
  88. new SuperMap.Control.Zoom(),
  89. new SuperMap.Control.MousePosition(),
  90. new SuperMap.Control.Navigation({
  91. dragPanOptions: {
  92. enableKinetic: true
  93. }
  94. })]
  95. });
  96. cartoCss = document.getElementById("textData").text;
  97. var valueMap = {pointFile: "", offsetY: 0};
  98. var cartoCssStr = replaceString(cartoCss, valueMap);
  99. layer = new SuperMap.Layer.TiledVectorLayer("China", url, {
  100. cacheEnabled: true,
  101. returnAttributes: true
  102. }, {useLocalStorage: true, cartoCss: cartoCssStr, donotNeedServerCartoCss: true});
  103. layer.events.on({"layerInitialized": addLayer});
  104. }
  105. function addLayer() {
  106. map.addLayers([layer]);
  107. var center = new SuperMap.LonLat(11793760, 4407704);
  108. map.setCenter(center, 6);
  109. }
  110. function replaceString(str, obj) {
  111. for (var prop in obj) {
  112. var regexp = new RegExp("<%=" + prop + ">", "gi");
  113. str = str.replace(regexp, obj[prop]);
  114. }
  115. return str;
  116. }
  117. function selectPoint(imgName) {
  118. var imgUrl = "url(./images/" + imgName + ".png)";
  119. var valueMap = {pointFile: imgUrl, offsetY: -8};
  120. var cartocssStr = replaceString(cartoCss, valueMap);
  121. layer.setCartoCSS(cartocssStr);
  122. }
  123. </script>
  124. </body>
  125. </html>