12_graphicLayer.html 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <!--********************************************************************
  2. * Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.
  3. *********************************************************************-->
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <title data-i18n="resources.title_graphicLayer"></title>
  8. <script type="text/javascript" include="randomcolor,papaparse,widgets" src="../js/include-web.js"></script>
  9. </head>
  10. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
  11. <div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
  12. <script type="text/javascript" src="../../dist/leaflet/include-leaflet.js"></script>
  13. <script type="text/javascript">
  14. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  15. var map;
  16. map = L.map('map', {
  17. preferCanvas: true,
  18. center: [40.74650, -73.89109999999999],
  19. maxZoom: 18,
  20. zoom: 12
  21. });
  22. var url = host + "/iserver/services/map-china400/rest/maps/ChinaDark";
  23. L.supermap.tiledMapLayer(url).addTo(map);
  24. var colorCount = 10;
  25. var colors = getRandomColors(colorCount);
  26. addGraphicLayer();
  27. function addGraphicLayer() {
  28. widgets.loader.showLoader();
  29. $.get('../data/nyc_taxi_18W.csv', function (nycData) {
  30. var features = Papa.parse(nycData, {skipEmptyLines: true, header: true}).data;
  31. var count = features.length;
  32. var graphics = [];
  33. var circleStyles = [];
  34. //创建圆的样式
  35. for (var i = 0; i < colorCount; i++) {
  36. circleStyles.push(L.supermap.circleStyle({
  37. color: colors[i],
  38. opacity: 1,
  39. radius: Math.floor(Math.random() * 3 + 1),
  40. fill: true,
  41. fillColor: colors[i],
  42. fillOpacity: 1
  43. }));
  44. }
  45. //设置每个点的经纬度和传入圆的样式
  46. for (var i = 0; i < count; ++i) {
  47. var coordinates = [Number(features[i].X), Number(features[i].Y)];
  48. if (coordinates[0] === coordinates[1]) {
  49. continue;
  50. }
  51. graphics[i] = L.supermap.graphic({
  52. latLng: L.latLng(coordinates[1], coordinates[0]),
  53. style: circleStyles[Math.floor(Math.random() * colorCount)].getStyle()
  54. });
  55. }
  56. //绘制图层
  57. L.supermap.graphicLayer(graphics, {
  58. render: "canvas",
  59. onClick: function (graphic) {
  60. L.popup().setLatLng(graphic.getLatLng())
  61. .setContent('<p>' + resources.text_latLng + ':<br>' + graphic.getLatLng().lng + ',<br>' + graphic.getLatLng().lat + '</p>')
  62. .openOn(map);
  63. }
  64. }).addTo(map);
  65. widgets.loader.removeLoader();
  66. })
  67. }
  68. //生成随机颜色
  69. function getRandomColors(count) {
  70. return randomColor({
  71. luminosity: 'bright',
  72. hue: 'random',
  73. alpha: 0.5,
  74. format: 'rgba',
  75. count: count
  76. });
  77. }
  78. </script>
  79. </body>
  80. </html>