plot_movingTarget.html 4.9 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_plotMovingTarget"></title>
  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" include="bootstrap-css" src="../js/include-web.js"></script>
  13. <script type="text/javascript" include="iclient-plot-leaflet" src="../../dist/leaflet/include-leaflet.js"></script>
  14. <script type="text/javascript">
  15. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  16. var url = host + "/iserver/services/map-world/rest/maps/World";
  17. var serverUrl = host + "/iserver/services/plot-jingyong/rest/plot/";
  18. var features = [];
  19. var trackingDirs = {};
  20. var e = 60;
  21. map = L.map('map', {
  22. crs: L.CRS.EPSG4326,
  23. center: [0, 0],
  24. maxZoom: 18,
  25. zoom: 2
  26. });
  27. L.supermap.tiledMapLayer(url).addTo(map);
  28. //L.supermap.plotting.editControl().addTo(map);
  29. var movingTargetLayer = L.supermap.plotting.movingTargetLayer("Moving-Target", serverUrl).addTo(map);
  30. map.on("zoomstart", function(){
  31. movingTargetLayer.setVisibility(false);
  32. });
  33. map.on("zoomend", function(){
  34. movingTargetLayer.setVisibility(true);
  35. });
  36. map.on("movestart", function(){
  37. movingTargetLayer.setVisibility(false);
  38. });
  39. map.on("moveend", function(){
  40. movingTargetLayer.setVisibility(true);
  41. });
  42. drawGraphics();
  43. window.setInterval(updateInterval, 1000);
  44. function updateInterval() {
  45. var features = movingTargetLayer.features;
  46. for(var i = 0; i < features.length; i++) {
  47. if(features[i].symbolType === SuperMap.Plot.SymbolType.DOTSYMBOL){
  48. var latlng = features[i].getLatLngs()[0];
  49. var x = latlng.lat;
  50. var y = latlng.lng;
  51. if(x >= e || x <= ((-1)*e)){
  52. trackingDirs[features[i].uuid][0] *= (-1);
  53. }
  54. if(y >= e || y <= ((-1)*e)){
  55. trackingDirs[features[i].uuid][1] *= (-1);
  56. }
  57. var trackingDir = trackingDirs[features[i].uuid];
  58. features[i].move(trackingDir[0] * 1, trackingDir[1] * 1);
  59. }
  60. }
  61. movingTargetLayer.update();
  62. }
  63. function drawGraphics() {
  64. var count = 2000;
  65. var randomCode = [9, 80101, 80102, 80103, 80104, 80105, 80106, 80107, 80108, 80109];
  66. var randomDir = [[0, 1], [0, -1], [-1, 0], [1, 0], [1, 1], [-1, -1], [1, -1], [-1, 1]];
  67. var randomSymbolData = [];
  68. var symbolDataIndex = 0;
  69. function getSymbolInfoSuccess(result) {
  70. randomSymbolData.push(result.result);
  71. symbolDataIndex++;
  72. if(symbolDataIndex < randomCode.length) {
  73. var params = new SuperMap.GetSymbolInfoParameters({
  74. libID: 421,
  75. code: randomCode[symbolDataIndex]
  76. });
  77. L.supermap.symbolInfoService(serverUrl).getSymbolInfo(params, getSymbolInfoSuccess, null);
  78. } else {
  79. for(var i = 0; i < count; ++i) {
  80. var coordinates = [2 * e * Math.random() - e, 2 * e * Math.random() - e];
  81. var randomIndex = Math.floor(10 * Math.random());
  82. var dotSymbol = L.supermap.plotting.PlottingObject.createSymbol(
  83. 421, randomCode[randomIndex], L.latLng(
  84. coordinates[0], coordinates[1]), {
  85. serverUrl: serverUrl,
  86. symbolData: randomSymbolData[randomIndex],
  87. symbolSize: new SuperMap.Size(20, 20),
  88. symbolTexts: [new SuperMap.Plot.SymbolText("速度_米 每秒:500", SuperMap.Plot.AnnoPosition.ANCHOR, {
  89. fontSize: 15,
  90. fillSymbolID: 0,
  91. fillColor: "#00ff00",
  92. fillOpacity: 0.8,
  93. color: "#ffffff"
  94. }, {
  95. border: true,
  96. offsetX: 20,
  97. offsetY: -30,
  98. paddingX: 5,
  99. paddingY: 7,
  100. lineStyle: {
  101. color: "#00ff00"
  102. }
  103. })],
  104. // bloodVolumes:[ new SuperMap.Plot.BloodVolume(0.5, SuperMap.Plot.Position.TOP, {remainingVolumeColor: "#ff0000", consumeVolumeColor:"#ffffff"}), new SuperMap.Plot.BloodVolume(0.5, SuperMap.Plot.Position.BOTTOM),
  105. // new SuperMap.Plot.BloodVolume(0.5, SuperMap.Plot.Position.LEFT, null, {offsetX: -20, width: 80, height: 15}), new SuperMap.Plot.BloodVolume(0.5, SuperMap.Plot.Position.RIGHT, null, {offsetX:20})
  106. // ],
  107. //pictureFrames:[ new SuperMap.Plot.PictureFrame("../img/marker.png", SuperMap.Plot.AnnoPosition.RIGHT, {width:32, height:32, offsetY: 0, offsetX: 0})],
  108. trajectory: new SuperMap.Plot.Trajectory(10, true, false, {color: "#00ff00"}, {saveTrackingPoint: true})
  109. }, null, null);
  110. features.push(dotSymbol);
  111. var randomDirIndex = Math.floor(8 * Math.random());
  112. trackingDirs[dotSymbol.uuid] = randomDir[randomDirIndex];
  113. }
  114. movingTargetLayer.addFeatures(features);
  115. }
  116. }
  117. var params = new SuperMap.GetSymbolInfoParameters({
  118. libID: 421,
  119. code: randomCode[symbolDataIndex]
  120. });
  121. L.supermap.symbolInfoService(serverUrl).getSymbolInfo(params, getSymbolInfoSuccess, null);
  122. }
  123. </script>
  124. </body>
  125. </html>