对于基于ArcGIS Runtime的应用程序,其实现方法比较简单,可以直接更新图形的Geometry属性,即可实现位置的移动:
1 private void AddGraphics() 2 { 3 var glyr = new GraphicsOverlay(); 4 glyr.SceneProperties.SurfacePlacement = SurfacePlacement.Absolute; 5 map1.GraphicsOverlays.Add(glyr); 6 7 var ptn = new MapPoint(0, 0, 1000000, SpatialReferences.Wgs84); 8 var sym = new SimpleMarkerSceneSymbol(SimpleMarkerSceneSymbolStyle.Sphere, Colors.Yellow, 100000, 100000, 100000, SceneSymbolAnchorPosition.Center); 9 var g = new Graphic(ptn, sym); 10 glyr.Graphics.Add(g); 11 Timer timer = new Timer(1000); 12 timer.Elapsed += async (sender, e) => await Task.Run(()=> { UpdateGraphics(g); }); 13 timer.Start(); 14 } 15 16 private void UpdateGraphics(Graphic g) 17 { 18 var old_ptn = g.Geometry as MapPoint; 19 var new_ptn = new MapPoint(old_ptn.X+1, 0, 1000000, SpatialReferences.Wgs84); 20 g.Geometry = new_ptn; 21 }
对于基于ArcGIS JavaScript API的Web应用,则需要通过external-renderer来进行实现动画渲染。
具体可以参加以下示例:https://developers.arcgis.com/javascript/latest/sample-code/sandbox/index.html?sample=scene-external-renderer