cartoCSS_helloKitty.html 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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_cartoCSSHelloKitty"></title>
  9. <script type="text/javascript" src="../js/include-web.js"></script>
  10. <script type="text/javascript" src="../../dist/ol/include-ol.js"></script>
  11. </head>
  12. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%; position: absolute;top: 0;">
  13. <div id="map" style="margin:0 auto;width: 100%;height: 100%;"></div>
  14. <script type="text" id="cartoCssStr">
  15. /*此处定义不同的颜色变量,在后面可以重复用这些颜色值*/
  16. @waterColor:rgb(245,169,193);
  17. @roadColora:rgb(244,73,116);
  18. @roadColorb:rgb(244,73,116);
  19. @railwayColora:rgb(50,50,50);
  20. @railwayColorb:rgb(255,255,255);
  21. @vegetationColor:rgb(239,169,193);
  22. @continentColor:rgb(250,250,250);
  23. @provinceLineColor:rgb(226,195,19);
  24. #Railway_A___Road::a{
  25. /*每一段的长度为15px,间隔也是15px*/
  26. line-color:@railwayColora;
  27. line-width:2.5;
  28. }
  29. #Railway_A___Road::b{
  30. /*每一段的长度为15px,间隔也是15px*/
  31. line-dasharray:18,18;
  32. line-color:@railwayColorb;
  33. line-width:1.5;
  34. }
  35. /*底下的地图背景图层*/
  36. #World_Division_pl___China{
  37. polygon-fill:@waterColor;
  38. }
  39. /*中国除外的其他国家的图层*/
  40. #World_Continent_pl___China{
  41. polygon-fill:@continentColor;
  42. line-width:1;
  43. line-color:@continentColor;
  44. }
  45. #China_Province_pl___China{
  46. polygon-fill:@continentColor;
  47. line-color:rgba(0,0,0,0);
  48. }
  49. #Arterial_Road_ln___China::one{
  50. line-color:@roadColora;
  51. line-width:2;}
  52. #Arterial_Road_ln___China::two{
  53. line-color:@roadColorb;
  54. line-width:1;}
  55. #Arterial_Road_ln___China___1::one{
  56. line-color:@roadColora;
  57. line-width:2;}
  58. #Arterial_Road_ln___China___1::two{
  59. line-color:@roadColorb;
  60. line-width:1;}
  61. #Arterial_Road_ln___China___1___1::one{
  62. line-color:@roadColora;
  63. line-width:2;}
  64. #Arterial_Road_ln___China___1___1::two{
  65. line-color:@roadColorb;
  66. line-width:1;}
  67. #Main_Road_L___China::one{
  68. line-color:@roadColora;
  69. line-width:2;}
  70. #Main_Road_L___China::two{
  71. line-color:@roadColorb;
  72. line-width:1;}
  73. #Main_Road_L___China___1::one{
  74. line-color:@roadColora;
  75. line-width:2;}
  76. #Main_Road_L___China___1::two{
  77. line-color:@roadColorb;
  78. line-width:1;}
  79. #Main_Road_L___China___1___1::a{
  80. line-color:@roadColora;
  81. line-width:2;}
  82. #Main_Road_L___China___1___1::b{
  83. line-color:@roadColorb;
  84. line-width:1;}
  85. #Hydside_Area_pl___Hydside{
  86. polygon-fill:@waterColor;
  87. line-color:@waterColor;
  88. }
  89. #China_Provinces_L___China400{
  90. line-dasharray:10,10;
  91. line-color:@provinceLineColor;
  92. line-width:1;
  93. }
  94. </script>
  95. <script type="text/javascript">
  96. var url = (window.isLocal ? window.server : "https://iserver.supermap.io")+"/iserver/services/map-china400/rest/maps/China";
  97. new ol.supermap.MapService(url).getMapInfo(function (serviceResult) {
  98. var map = new ol.Map({
  99. target: 'map',
  100. controls: ol.control.defaults({attributionOptions: {collapsed: false}})
  101. .extend([new ol.supermap.control.Logo()]),
  102. view: new ol.View({
  103. center: [12957388, 4853991],
  104. zoom: 11,
  105. multiWorld: true
  106. })
  107. });
  108. var stylesOptions = {
  109. url: url,
  110. view: map.getView(),
  111. donotNeedServerCartoCss: true,
  112. cartoCss: document.getElementById("cartoCssStr").text
  113. }
  114. var vectorTileStyles = new ol.supermap.VectorTileStyles(stylesOptions);
  115. var vectorTileOptions = ol.source.VectorTileSuperMapRest.optionsFromMapJSON(url, serviceResult.result);
  116. vectorTileOptions.returnAttributes = false;
  117. var vectorLayer = new ol.layer.VectorTile({
  118. source: new ol.source.VectorTileSuperMapRest(vectorTileOptions),
  119. style: vectorTileStyles.getFeatureStyle
  120. });
  121. map.addLayer(vectorLayer);
  122. map.on('click', function (e) {
  123. map.forEachFeatureAtPixel(e.pixel, function (feature) {
  124. vectorTileStyles.dispatchEvent({type: 'featureSelected',
  125. selectedId: feature.getProperties().id,
  126. layerName: feature.getProperties().layerName
  127. });
  128. return true;
  129. }, {hitTolerance: 5});
  130. vectorLayer.changed();
  131. })
  132. });
  133. </script>
  134. </body>
  135. </html>