Как создать буфер и определить, что находится внутри буфера mapPolyLine?C # - PullRequest
0 голосов
/ 21 июля 2011

Я пытаюсь создать буфер вокруг MapPolyLine, чтобы определить, есть ли что-то внутри mapPolyLine.Ниже приведен код для MapPolyLine:

    private void routeService_CalculateRouteCompleted(object sender, CalculateRouteCompletedEventArgs e)

    {
         // If the route calculate was a success and contains a route, then draw the route on the map.
            if ((e.Result.ResponseSummary.StatusCode == BingMapRouteService.ResponseStatusCode.Success) & (e.Result.Result.Legs.Count != 0))
            {
                // Set properties of the route line you want to draw.
                System.Windows.Media.Color routeColor = Colors.Blue;
                SolidColorBrush routeBrush = new SolidColorBrush(routeColor);
                //MapPolyline routeLine = new MapPolyline();
                App.routeLine.Locations = new LocationCollection();
                App.routeLine.Stroke = routeBrush;
                App.routeLine.Opacity = 0.65;
                App.routeLine.StrokeThickness = 5.0;


                // Retrieve the route points that define the shape of the route.
                foreach (Location p in e.Result.Result.RoutePath.Points)
                {
                    App.routeLine.Locations.Add(new GeoCoordinate(p.Latitude, p.Longitude));

                }

Как получить координаты буфера MapPolyLine (используя только Bing Map API без расширения ARCGIS)?

1 Ответ

0 голосов
/ 03 августа 2011

Хорошо, подумайте об этом так: буфер в ГИС - это многоугольник.Единственный способ узнать, находятся ли точки внутри него или нет, - это возможность создать эту фигуру (независимо от того, отображаете вы ее или нет) и выполнить любой доступный для вас анализ точек на полигоне.(Я не знаю, предлагает ли Bing Maps такую ​​функциональность).В идеале я хотел бы сделать это, рисуя дуги на конечных точках (используя их в качестве центров дуг), а затем соединяя их с отрезками линии, следуя контурам ломаной линии).Вам нужно будет определить наклон и пересечение для каждой точки полилинии, чтобы сделать это.Или лучше сказать, что пересечения для линий, которые смещены на определенное расстояние (будь то в экранных координатах или Меркатора) от точек полилинии.Как только это будет сделано, у вас может быть подходящий многоугольник, хотя код точки-многоугольника, с которым я работал, не будет работать с дугами.Скорее всего, вам нужно будет приблизить их с прямыми сегментами.

Я чувствую вашу боль в этом, поскольку я тоже не хотел бы загружать приложение библиотеками ArcGIS, несмотря на их функциональность.И я понимаю, что это набросок того, что нужно сделать.Но это то, что я хотел бы сделать.

...