1+ <!--********************************************************************
2+ * Copyright© 2000 - 2020 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+
28+ L . supermap . tiledMapLayer ( url ) . addTo ( map ) ;
29+ //L.supermap.plotting.editControl().addTo(map);
30+ var movingTargetLayer = L . supermap . plotting . movingTargetLayer ( "Moving-Target" , serverUrl ) . addTo ( map ) ;
31+
32+ map . on ( "zoomstart" , function ( ) {
33+ movingTargetLayer . setVisibility ( false ) ;
34+ } ) ;
35+ map . on ( "zoomend" , function ( ) {
36+ movingTargetLayer . setVisibility ( true ) ;
37+ } ) ;
38+ map . on ( "movestart" , function ( ) {
39+ movingTargetLayer . setVisibility ( false ) ;
40+ } ) ;
41+ map . on ( "moveend" , function ( ) {
42+ movingTargetLayer . setVisibility ( true ) ;
43+ } ) ;
44+
45+ drawGraphics ( ) ;
46+ window . setInterval ( updateInterval , 1000 ) ;
47+
48+ function updateInterval ( ) {
49+ var bounds = map . get
50+ var features = movingTargetLayer . features ;
51+ for ( var i = 0 ; i < features . length ; i ++ ) {
52+ if ( features [ i ] . symbolType === SuperMap . Plot . SymbolType . DOTSYMBOL ) {
53+ // var latlng = features[i].getLatLngs()[0];
54+
55+ // var x = latlng.lat;
56+ // var y = latlng.lng;
57+ // if(x >= e || x <= ((-1)*e)){
58+ // trackingDirs[features[i].uuid][0] *= (-1);
59+ // }
60+ // if(y >= e || y <= ((-1)*e)){
61+ // trackingDirs[features[i].uuid][1] *= (-1);
62+ // }
63+
64+ var trackingDir = trackingDirs [ features [ i ] . uuid ] ;
65+
66+ features [ i ] . move ( trackingDir [ 0 ] * 1 , trackingDir [ 1 ] * 1 ) ;
67+ }
68+ }
69+
70+ movingTargetLayer . update ( ) ;
71+ }
72+
73+ function drawGraphics ( ) {
74+ var count = 2000 ;
75+ var randomCode = [ 9 , 80101 , 80102 , 80103 , 80104 , 80105 , 80106 , 80107 , 80108 , 80109 ] ;
76+ var randomDir = [ [ 0 , 1 ] , [ 0 , - 1 ] , [ - 1 , 0 ] , [ 1 , 0 ] , [ 1 , 1 ] , [ - 1 , - 1 ] , [ 1 , - 1 ] , [ - 1 , 1 ] ] ;
77+ var randomSymbolData = [ ] ;
78+ var symbolDataIndex = 0 ;
79+
80+ function getSymbolInfoSuccess ( result ) {
81+ randomSymbolData . push ( result . result ) ;
82+ symbolDataIndex ++ ;
83+ if ( symbolDataIndex < randomCode . length ) {
84+ var params = new SuperMap . GetSymbolInfoParameters ( {
85+ libID : 421 ,
86+ code : randomCode [ symbolDataIndex ]
87+ } ) ;
88+ L . supermap . symbolInfoService ( serverUrl ) . getSymbolInfo ( params , getSymbolInfoSuccess , null ) ;
89+ } else {
90+ for ( var i = 0 ; i < count ; ++ i ) {
91+ var coordinates = [ 2 * e * Math . random ( ) - e , 2 * e * Math . random ( ) - e ] ;
92+ var randomIndex = Math . floor ( 10 * Math . random ( ) ) ;
93+ var dotSymbol = L . supermap . plotting . PlottingObject . createSymbol (
94+ 421 , randomCode [ randomIndex ] , L . latLng (
95+ coordinates [ 0 ] , coordinates [ 1 ] ) , {
96+ serverUrl : serverUrl ,
97+ symbolData : randomSymbolData [ randomIndex ] ,
98+ symbolSize : new SuperMap . Size ( 20 , 20 ) ,
99+ symbolTexts : [ new SuperMap . Plot . SymbolText ( "速度_米 每秒:500" , SuperMap . Plot . AnnoPosition . ANCHOR , {
100+ fontSize : 15 ,
101+ fillSymbolID : 0 ,
102+ fillColor : "#00ff00" ,
103+ fillOpacity : 0.8 ,
104+ color : "#ffffff"
105+
106+ } , {
107+ border : true ,
108+ offsetX : 20 ,
109+ offsetY : - 30 ,
110+ paddingX : 5 ,
111+ paddingY : 7 ,
112+ lineStyle : {
113+ color : "#00ff00"
114+ }
115+ } ) ] ,
116+ // 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),
117+ // 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})
118+ // ],
119+
120+ //pictureFrames:[ new SuperMap.Plot.PictureFrame("../img/marker.png", SuperMap.Plot.AnnoPosition.RIGHT, {width:32, height:32, offsetY: 0, offsetX: 0})],
121+ trajectory : new SuperMap . Plot . Trajectory ( 10 , true , false , { color : "#00ff00" } , { saveTrackingPoint : true } )
122+ } , null , null ) ;
123+ features . push ( dotSymbol ) ;
124+
125+ var randomDirIndex = Math . floor ( 8 * Math . random ( ) ) ;
126+ trackingDirs [ dotSymbol . uuid ] = randomDir [ randomDirIndex ] ;
127+ }
128+ movingTargetLayer . addFeatures ( features ) ;
129+ }
130+ }
131+ var params = new SuperMap . GetSymbolInfoParameters ( {
132+ libID : 421 ,
133+ code : randomCode [ symbolDataIndex ]
134+ } ) ;
135+ L . supermap . symbolInfoService ( serverUrl ) . getSymbolInfo ( params , getSymbolInfoSuccess , null ) ;
136+ }
137+ </ script >
138+ </ body >
139+ </ html >
0 commit comments