我正在将GraphicsLayer用于SimpleLineSymbol的道路符号系统。
我的代码与以下代码相同:

    for (int i = 0; i < 200000; i++)
    {
        myGraphicsLayer.Graphics[i].Symbol = mySimpleLineSymbol;
    }


此代码运行速度很快,但在地图上绘制线条符号非常慢。(大约6秒)。
请帮助我提高符号性能。

最佳答案

我将所有几何图形收集到一条折线中,并为此创建一个图形。然后我创建符号并显示。它需要一秒钟的时间来渲染和显示在地图上。

        var myPolyline = new ESRI.ArcGIS.Client.Geometry.Polyline();

        for (int i = 0; i < 200000; i++)
        {
            myPolyline.Paths.Add(((ESRI.ArcGIS.Client.Geometry.Polyline)myGraphicsLayer.Graphics[i].Geometry).Paths[0]);
        }

        Graphic myGraph = new Graphic();

        myGraph.Geometry = myPolyline;

        ESRI.ArcGIS.Client.Symbols.SimpleLineSymbol sym = new ESRI.ArcGIS.Client.Symbols.SimpleLineSymbol();

        sym.Color = new SolidColorBrush(Colors.Red);

        sym.Width = 2;

        myGraph.Symbol = sym;

        myGraphicsLayer.Graphics.Add(myGraph);

关于c# - Arcgis Silverlight API的性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27602825/

10-11 02:13