laptop and a wrench

Bug

Performance issue with a DistanceCompositeSceneSymbol while drawing thousands of graphics on a GraphicsOverlay.

Zuletzt veröffentlicht: November 28, 2018 ArcGIS Runtime SDK
Bug-ID-Nummer BUG-000117596
EingereichtOctober 22, 2018
Zuletzt geändertJune 5, 2024
Gilt fürArcGIS Runtime SDK
Gefunden in Version100.3
BetriebssystemWindows OS
Betriebssystemversion10.0 64 Bit
StatusKnown Limit

Zusätzliche Informationen

Using a different 3D marker symbol for each individual graphic incurs an overhead because it limits the reuse of low level graphic resources. Instead we recommend using the `Pitch Expression` property on the Renderer.SceneProperties. Example: ``` private async void Initialize() { mySceneView.Scene = new Scene(); mySceneView.Scene.Basemap = Basemap.CreateImagery(); List ptList = new List(); SimpleRenderer urender = new SimpleRenderer(); var markerSymbol = new SimpleMarkerSceneSymbol() { Style = SimpleMarkerSceneSymbolStyle.Sphere, Color = System.Drawing.Color.FromArgb(200, 255, 255, 0), Height = 11, Width = 11, Depth = 11, AnchorPosition = SceneSymbolAnchorPosition.Center }; urender.SceneProperties.PitchExpression = "[pitch]"; string path = System.Environment.CurrentDirectory + "\\tower.dae"; var modelSymbol = await ModelSceneSymbol.CreateAsync(new Uri(path), 1); modelSymbol.AnchorPosition = SceneSymbolAnchorPosition.Bottom; var compositeSymbol = new DistanceCompositeSceneSymbol(); var nearSymbolInfo = new DistanceSymbolRange(modelSymbol, 0, 1000); compositeSymbol.Ranges.Add(nearSymbolInfo); var farSymbolInfo = new DistanceSymbolRange(markerSymbol, 1000, 10000); compositeSymbol.Ranges.Add(farSymbolInfo); urender.Symbol = compositeSymbol; for (int i = 0; i < 1000; i++) { MapPoint mapPoint = new MapPoint(115 + i * 0.0005, 36 + i * 0.0005); ptList.Add(mapPoint); Graphic graphic = new Graphic(mapPoint); graphic.Attributes.Add("NO.", i); graphic.Attributes["pitch"] = (mapPoint.X - 115) * 100000; goTower.Graphics.Add(graphic); } goTower.Renderer = urender; mySceneView.GraphicsOverlays.Add(goTower); await mySceneView.SetViewpointCameraAsync(new Camera(ptList[0], 1000, 0, 0, 0)); } ```

Schritte zur Reproduzierung

Bug-ID: BUG-000117596

Software:

  • ArcGIS Runtime SDK

Benachrichtigung erhalten, wenn sich der Status eines Bugs ändert

Esri Support App herunterladen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln