deckglLayer_pathLayer_4326.html 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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. <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
  9. <title data-i18n="resources.title_mb_deckglLayer_pathLayerWGS84"></title>
  10. <script type="text/javascript" include="jquery" src="../js/include-web.js"></script>
  11. <style>
  12. body {
  13. margin: 0;
  14. padding: 0;
  15. }
  16. #map {
  17. position: absolute;
  18. top: 0;
  19. bottom: 0;
  20. width: 100%;
  21. }
  22. .mapboxgl-marker {
  23. width: 10px;
  24. height: 10px;
  25. background: red;
  26. margin-top: -5px;
  27. margin-left: -5px;
  28. border-radius: 5px;
  29. cursor: pointer;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div id="map"></div>
  35. <script
  36. type="text/javascript"
  37. include="mapbox-gl-enhance,deck"
  38. src="../../dist/mapboxgl/include-mapboxgl.js"
  39. ></script>
  40. <script type="text/javascript">
  41. var host = window.isLocal ? window.server : 'https://iserver.supermap.io';
  42. var map = new mapboxgl.Map({
  43. container: 'map',
  44. style: {
  45. version: 8,
  46. sources: {
  47. 'raster-tiles': {
  48. type: 'raster',
  49. tiles: [host + '/iserver/services/map-world/rest/maps/World'],
  50. rasterSource: 'iserver',
  51. tileSize: 256
  52. }
  53. },
  54. layers: [
  55. {
  56. id: 'simple-tiles',
  57. type: 'raster',
  58. source: 'raster-tiles',
  59. minzoom: 0,
  60. maxzoom: 22
  61. }
  62. ]
  63. },
  64. crs: 'EPSG:4326',
  65. center: [-122.28293365065224, 37.924513609424366],
  66. zoom: 11
  67. });
  68. $.get('../data/deck.gl/bart-lines.json', function(features) {
  69. addLayer(features);
  70. });
  71. function addLayer(features) {
  72. deckglLayer = new mapboxgl.supermap.DeckglLayer('path-layer', {
  73. data: features,
  74. props: {
  75. widthScale: 20, //线宽比例
  76. widthMinPixels: 2, //线宽最小像素值
  77. coordinateSystem: 3,
  78. onHover: function(feature) {
  79. console.log(feature);
  80. }
  81. //该类型可配置的其他参数有:
  82. //widthMaxPixels 线宽最大像素值,默认为 Number.MAX_SAFE_INTEGER;
  83. //rounded 节点是否绘制为弧形,可选参数,默认为 false;
  84. //miterLimit 节点相对于线宽的最大范围,默认为 4,仅在 rounded 为 false 时有效;
  85. //fp64 否应以高精度64位模式呈现图层,默认为 false;
  86. //dashJustified 是否虚线形式显示,默认为 false,仅在 getDashArray() 回调函数被指定时有效;
  87. },
  88. callback: {
  89. getPath: function(d) {
  90. return d.path;
  91. },
  92. getColor: function(d) {
  93. return d.color.colorRgb();
  94. },
  95. getWidth: function(d) {
  96. return 5;
  97. }
  98. }
  99. });
  100. map.addLayer(deckglLayer);
  101. }
  102. var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
  103. /*16进制颜色转为RGB格式*/
  104. String.prototype.colorRgb = function() {
  105. var sColor = this.toLowerCase();
  106. if (sColor && reg.test(sColor)) {
  107. if (sColor.length === 4) {
  108. var sColorNew = '#';
  109. for (var i = 1; i < 4; i += 1) {
  110. sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));
  111. }
  112. sColor = sColorNew;
  113. }
  114. //处理六位的颜色值
  115. var sColorChange = [];
  116. for (var i = 1; i < 7; i += 2) {
  117. sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2)));
  118. }
  119. return sColorChange;
  120. } else {
  121. return sColor;
  122. }
  123. };
  124. </script>
  125. </body>
  126. </html>