繁体   English   中英

如何在Google Maps API中使用ProvideRouteAlternatives = true?

[英]How to use provideRouteAlternatives=true in google maps api?

目前,我通过执行以下操作来获取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";

但它似乎无能为力。 当我向Google询问具有相同地址的路线时,我确实获得了不止一条路线,但是此api却没有。

我是在做错什么,还是这样不可能? 也许我需要javascript之类的东西,在winforms中可能吗? 一个例子会很好。

找到它,我使用了错误的参数。
我必须使用alternatives = true代替provideroutealternatives = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM