deckglLayer_arcLayer.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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 http-equiv="X-UA-Compatible" content="IE=Edge">
  9. <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
  10. <title data-i18n="resources.title_mb_deckglLayer_arcLayer"></title>
  11. <style>
  12. body {
  13. margin: 0;
  14. overflow: hidden;
  15. background: #fff;
  16. width: 100%;
  17. height: 100%
  18. }
  19. #map {
  20. position: absolute;
  21. top: 0;
  22. bottom: 0;
  23. width: 100%;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <div id="map"></div>
  29. <script type="text/javascript" include="papaparse,widgets" src="../js/include-web.js"></script>
  30. <script type="text/javascript" include="deck" src="../../dist/mapboxgl/include-mapboxgl.js"></script>
  31. <script type="text/javascript">
  32. var host = window.isLocal ? window.server : "https://iserver.supermap.io",
  33. url = host + "/iserver/services/map-china400/rest/maps/ChinaDark";
  34. var map, deckglLayer;
  35. var attribution = "<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox </a>" +
  36. " with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a> | </span>" +
  37. " Map Data <span>© <a href='https://uber.github.io/deck.gl' target='_blank'>deck.gl</a></span> ";
  38. map = new mapboxgl.Map({
  39. container: 'map',
  40. style: {
  41. "version": 8,
  42. "sources": {
  43. "raster-tiles": {
  44. "attribution": attribution,
  45. "type": "raster",
  46. "tiles": [url + '/zxyTileImage.png?z={z}&x={x}&y={y}'],
  47. "tileSize": 256,
  48. },
  49. },
  50. "layers": [{
  51. "id": "simple-tiles",
  52. "type": "raster",
  53. "source": "raster-tiles",
  54. "minzoom": 0,
  55. "maxzoom": 22
  56. }]
  57. },
  58. center: [-122.271604, 37.803664],
  59. zoom: 10,
  60. });
  61. map.addControl(new mapboxgl.NavigationControl(), 'top-left');
  62. widgets.loader.showLoader("data loading...");
  63. $.get('../data/deck.gl/bart-segments.json', function (features) {
  64. widgets.loader.removeLoader();
  65. addLayer(features);
  66. });
  67. function addLayer(features) {
  68. deckglLayer = new mapboxgl.supermap.DeckglLayer("arc-layer", {
  69. data: features,
  70. props: {
  71. strokeWidth: 12 //线宽
  72. //该类型可配置的其他参数有:
  73. //fp64 否应以高精度64位模式呈现图层,默认为 false
  74. },
  75. callback: {
  76. // getStrokeWidth: 12,
  77. getSourcePosition: function(d) { return d.from.coordinates },
  78. getTargetPosition: function(d) { return d.to.coordinates },
  79. getSourceColor: function(d) { return [Math.sqrt(d.inbound), 140, 0] },
  80. getTargetColor: function(d) { return [Math.sqrt(d.outbound), 140, 0] },
  81. }
  82. });
  83. map.addLayer(deckglLayer);
  84. }
  85. var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
  86. /*16进制颜色转为RGB格式*/
  87. String.prototype.colorRgb = function () {
  88. var sColor = this.toLowerCase();
  89. if (sColor && reg.test(sColor)) {
  90. if (sColor.length === 4) {
  91. var sColorNew = "#";
  92. for (var i = 1; i < 4; i += 1) {
  93. sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));
  94. }
  95. sColor = sColorNew;
  96. }
  97. //处理六位的颜色值
  98. var sColorChange = [];
  99. for (var i = 1; i < 7; i += 2) {
  100. sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2)));
  101. }
  102. return sColorChange;
  103. } else {
  104. return sColor;
  105. }
  106. }
  107. </script>
  108. </body>
  109. </html>