1

我正在尝试在 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 扩展)?

4

1 回答 1

0

好吧,这样想:GIS 中的缓冲区是一个多边形。查看点是否在其中有用的唯一方法是能够创建该形状(无论您是否显示它)并运行您可以使用的任何多边形点分析。(我不知道 Bing Maps 是否提供该功能)。理想情况下,我会在端点处绘制弧线(将它们用作弧线的中心),然后将它们与折线轮廓的线段连接起来)。为此,您需要确定每个折线点的坡度和交点。或者更好的说法是,从折线点偏移一定距离(无论是屏幕坐标还是墨卡托)的线的交点是什么。完成后,您可能有一个合适的多边形,尽管多边形中的点代码 I' ve 工作过不会与弧一起工作。您可能需要用直线段来近似那些。

我对这个感到痛苦,因为我也不想用 ArcGIS DLL 来阻碍应用程序,尽管它们具有功能。我意识到这是需要做什么的准系统大纲。但这是我打算做的。

于 2011-08-03T16:09:47.223 回答