5

我正在使用 C# 开发一个程序,我想计算路线,但它返回 null。

这是我的代码;

PointLatLng start = new PointLatLng(38.481858, 27.089006);
PointLatLng end = new PointLatLng(38.468447, 27.113793);

MapRoute route = GMap.NET.MapProviders.GoogleMapProvider
                                      .Instance.GetRoute(start, end, false, false, 15);
GMapRoute r = new GMapRoute(route.Points , "My route");
GMapOverlay routeOverlay = new GMapOverlay("route");
routeOverlay.Routes.Add(r);
gMap.Overlays.Add(routeOverlay);
double distance;
distance = route.Distance;

r.Stroke.Width = 2;
r.Stroke.Color = Color.OrangeRed;

我不知道我在哪里犯错误。任何形式的帮助将不胜感激。

4

5 回答 5

5
GDirections ss;
var xx = GMapProviders.GoogleMap.GetDirections(out ss, start, end, false, false, false, false, false);
GMapRoute r = new GMapRoute(ss.Route, "My route");

尝试这个...

于 2015-07-29T19:25:06.820 回答
5

问题解决了。。 route之所以返回null,是因为路由服务被google下架了。

于 2015-07-30T11:28:42.847 回答
1

您的 Api 密钥无效从 nuget 添加 GMap 使用此代码:

 public static double GetDistanceByRoute(double startLat, double startLng, double endLat, double endLng)
    {
        GoogleMapProvider.Instance.ApiKey = "Your Api Key";
        PointLatLng start = new PointLatLng(startLat, startLng);
        PointLatLng end = new PointLatLng(endLat, endLng);
        MapRoute route = GMap.NET.MapProviders.GoogleMapProvider.Instance.GetRoute(start, end, false, false, 15);
        return route.Distance;
    }
于 2019-07-05T21:17:57.390 回答
0
        PointLatLng startp = new PointLatLng(-25.974134, 32.593042);
        PointLatLng endp = new PointLatLng(-25.959048, 32.592827);
        MapRoute route = BingMapProvider.Instance.GetRoute(startp, endp, false, false, 15);
        GMapRoute r = new GMapRoute(route.Points,"Myroutes");
        GMapOverlay routesOverlay = new GMapOverlay("Myroutes");
        routesOverlay.Routes.Add(r);
        gmap.Overlays.Add(routesOverlay);
        r.Stroke.Width = 2;
        r.Stroke.Color = Color.SeaGreen; 

//使用 BingMapProvider

于 2016-03-18T14:19:06.480 回答
0

您的 API 密钥丢失,我遇到了同样的问题,添加了 api 密钥并且它工作正常。

于 2021-06-14T08:54:39.420 回答