Линейка(Display total)

0 голосов
спросил 30 Ноя, 11 от Dido_kz1 (11,020 баллов) в категории Программные продукты Esri
привет кодеры )
сделал линейку, использую примеры есри

 MyDrawLine = new Draw(MyMap)
            {
                LineSymbol = LayoutRoot.Resources["DefaultLineSymbol"] as LineSymbol,
                DrawMode = DrawMode.Polyline,
                IsEnabled=false
            };
 MyDrawLine.DrawComplete += MyDrawObject_DrawPolyLine;
private void MyDrawObject_DrawPolyLine(object sender, DrawEventArgs args)
        {
            Polyline polyline = args.Geometry as Polyline;
            polyline.SpatialReference = new SpatialReference(4269);
            Graphic graphic = new Graphic()
            {
                Symbol = DefaultLineSymbol,
                Geometry = polyline
            };
            GraphicsLayer graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer;
            graphicsLayer.Graphics.Add(graphic);
            GeometryService geometryService = new GeometryService(MyGeometyService);
            geometryService.ProjectCompleted += GeometryService_ProjectCompleted;
            geometryService.Failed += GeometryService_Failed;
            List<Graphic> graphicList = new List<Graphic>();
            graphicList.Add(graphic);
            geometryService.ProjectAsync(graphicList, new SpatialReference(4269));
        }
private void GeometryService_ProjectCompleted(object sender, GraphicsEventArgs args)
        {
            GeometryService geometryService =new GeometryService(MyGeometyService);
            geometryService.LengthsCompleted += GeometryService_LengthsCompleted;
            geometryService.LengthsAsync(args.Results);
        }
        private void GeometryService_LengthsCompleted(object sender, LengthsEventArgs args)
        {
            double meter = args.Results[0];
            if (meter<1000)
            ResponseTextBlock.Text = String.Format("Длина участка {0} метров", Math.Round(meter, 1));
                else
             ResponseTextBlock.Text = String.Format("Длина участка {0} километров", Math.Round((meter / 1000), 1));
        }

все работает,
Необходимо вывести длину каждого участка на карте, (как тут)
а в
ResponseTextBlock.Text вывести итоговую, как правильно реализовать..

2 Ответы

0 голосов
ответил 30 Ноя, 11 от Dido_kz1 (11,020 баллов)
можно было и его использовать, только как вывести итоговую длину в TextBlock
<TextBlock x:Name="ResponseTextBlock" Text="{Binding ElementName=MyMeasureAction, Path=DisplayTotals}" /> не показывает
0 голосов
ответил 30 Ноя, 11 от Dido_kz1 (11,020 баллов)
UP

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...