【问题标题】:I can not Add route to GmapControl我无法将路由添加到 GmapControl
【发布时间】:2016-05-10 13:33:16
【问题描述】:

我的项目是 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);

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

【问题讨论】:

    标签: c# wpf overlay gmap.net


    【解决方案1】:

    但是没有叠加层可以添加

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

    1. 将路由包裹在 GMapRoute 实例中,即 GMapRoute 构造函数 取一组点。

    2. 将 GMapRoute 实例添加到叠加层

    3. 给GMapControl添加叠加层

    参考:ADDING THE ROUTE TO THE MAP

    --------2016 年 5 月 11 日更新--------

    对于 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

    【讨论】:

    • 你在开玩笑吗?你以为我没有找到那个参考?我告诉你,我的 wpf 项目中不知道 Overlay 对象
    • @MeysamTolouee 好的,我已经用一个完整的示例更新了我的答案,第一个文档是针对传统 Winform 项目的,所以请改用标记
    • 一个更简短的现有答案:stackoverflow.com/a/35500767
    • @FranklinChen-MSFT 'GMapRoute' 在我的项目中不知道是类型。
    • @MeysamTolouee 你看过我的 github 演示了吗?你的 nuget 包版本是什么?
    猜你喜欢
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 2022-09-26
    • 2016-08-16
    • 2017-10-02
    相关资源
    最近更新 更多