我无法添加到GmapControl的路由

时间:2016-05-10 13:33:16

标签: c# wpf overlay gmap.net

我的项目是WPF。 使用这些部分代码我试图添加路由:

PointLatLng start = new PointLatLng(34.633440, 50.867821);
PointLatLng end = new PointLatLng(34.618707, 50.844945);
MapRoute route = GoogleMapProvider.Instance.GetRoute(
start, end, false, false, 15);

但是在所有文章中他们都说我必须将创建的路线添加到叠加层。然后将叠加添加到我的控件。但是没有添加叠加层。 如何将路线添加到我的Control?

1 个答案:

答案 0 :(得分:2)

  

但是没有添加重叠

在您的代码段中,已创建MapRoute实例。我们需要做以下事情:

1.将路由包含在GMapRoute实例GMapRoute构造函数中     取一套点。

2.将GMapRoute实例添加到覆盖

3.将叠加添加到GMapControl

参考: ADDING THE ROUTE TO THE MAP

--------更新5/11/2016 --------

对于WPF应用程序,我们必须将路由包装在 GMapRoute 实例中并添加到 GMapControl.Markers

 RoutingProvider rp = gmap1.MapProvider as RoutingProvider;
 if (rp == null)
 {
            rp = GMapProviders.OpenStreetMap; // use OpenStreetMap if provider does not implement routing
 }

 MapRoute route = rp.GetRoute(start, end, false, false, 15);

 if (route != null)
 {
            GMapRoute mRoute = new GMapRoute(route.Points);
            {
                mRoute.ZIndex = -1;
            }

            gmap1.Markers.Add(mRoute);

            gmap1.ZoomAndCenterMarkers(null);
 }
 else
 {
            System.Diagnostics.Debug.WriteLine("There is no route");
 }

我为您创建了一个示例,请查看here