【问题标题】:How to use provideRouteAlternatives=true in google maps api?如何在谷歌地图 api 中使用 provideRouteAlternatives=true?
【发布时间】:2016-03-07 14:48:17
【问题描述】:

目前,我通过这样做获得了我的 c# winforms 应用程序中 2 个位置之间的距离:

string requesturl = "http://maps.google.com/maps/api/directions/json?origin=" + origin + "&destination=" + destination + "&sensor=false;
string content = fileGetContents(requesturl);

JObject o = JObject.Parse(content);
distance = (decimal)o.SelectToken("routes[0].legs[0].distance.value") / 1000;

private static string fileGetContents(string fileName)
{
    string sContents = string.Empty;
    string me = string.Empty;
    try
    {
        if (fileName.ToLower().IndexOf("http:") > -1)
        {
            System.Net.WebClient wc = new System.Net.WebClient();
            byte[] response = wc.DownloadData(fileName);
            sContents = System.Text.Encoding.ASCII.GetString(response);
        }
        else
        {
            System.IO.StreamReader sr = new System.IO.StreamReader(fileName);
            sContents = sr.ReadToEnd();
            sr.Close();
        }
    }
    catch { sContents = "unable to connect to server "; }
    return sContents;
}

这很好用,但它总是返回最快的路线,而不是最短的路线。

我想获得最短的距离,所以我想在对 google api 的调用中添加provideRouteAlternatives=true。然后我可以在每条路线的文件中搜索以获得最短的路径。
但是我该怎么做呢?
需要说明的是,如果要返回多条路线,我知道如何调整我的代码以在每条路线中进行搜索,问题是如何让此参数开始工作,以便返回多条路线。

我试过了:

string requesturl = "http://maps.google.com/maps/api/directions/json?origin=" 
    + origin + "&destination=" 
    + destination + "&sensor=false&provideRouteAlternatives=true";

但它似乎没有做任何事情。 当我向谷歌询问具有相同地址的路线时,我确实得到了不止一条路线,但这个 api 没有。

我做错了什么还是不可能像这样? 也许我需要javascript或其他东西,在winforms中可能吗? 举个例子就好了。

【问题讨论】:

    标签: c# winforms google-maps-api-3


    【解决方案1】:

    找到了,我用错了参数。
    我必须使用alternatives=true 而不是provideroutealternatives=true

    编辑
    我在尝试不同的事情时偶然发现了这一点,有一次我只是尝试了alternatives 而不是provideroutealternatives,令我惊讶的是它有效并且仍然有效。文档仍然写了 providerroutealternatives 并且该参数仍然不起作用。所以我猜测开发人员和谷歌的文档编写者之间存在一些误解。

    编辑

    @MrEduar 指出我阅读了错误的文档。
    provideRouteAlternatives 用于 javascript 库,
    alternatives 用于 directions api

    所以文档毕竟是正确的,你只需要小心使用正确的文档。那里很容易出错。

    【讨论】:

    • 过去两个小时我一直在处理这个问题。感谢您的解决方案! (顺便说一句,Google 文档仍将“provideRouteAlternatives”列为参数名称。)
    • 很高兴我能帮上忙。也许在谷歌,他们应该在谷歌上搜索更多关于他们的文档问题:)
    • 没有我从哪里获得您的解决方案的信息,因为在 google maps api 的文档中没有与您的魔术参数相关的内容。另外,我刚刚尝试过,截至今天它不是一个有效的解决方案。
    • @MrEduar 我刚刚尝试过,它仍然适用于我。这会给您带来错误还是什么?
    • @MrEduar 我试过这个网址https://maps.googleapis.com/maps/api/directions/json?origin=1190 Belgium&destination=3832JP Holland&sensor=false&alternatives=true&key=YourKeyHere,它就像一个魅力
    猜你喜欢
    • 1970-01-01
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多