C# 用于C的谷歌地图API#

C# 用于C的谷歌地图API#,c#,google-maps,google-maps-api-3,C#,Google Maps,Google Maps Api 3,我对使用API真的很陌生,所以在浏览了GoogleMapsAPI页面之后,我不确定是否有专门为C#设计的API。我不需要在我的应用程序上显示谷歌地图;我只需要知道我是否可以在C#上使用谷歌地图API。 我在很多地方都找过,但我能找到的只是使用GMAP的替代方案,但这不是我想要的 可以使用它吗?1。自己创建对谷歌地图API的请求 您只需向GoogleMapsAPI发送HTTP请求,然后处理结果。 您可以使用伪造对GoogleAPI的请求。你需要一个合适的答案 您必须构建GET参数,例如,ori

我对使用API真的很陌生,所以在浏览了GoogleMapsAPI页面之后,我不确定是否有专门为C#设计的API。我不需要在我的应用程序上显示谷歌地图;我只需要知道我是否可以在C#上使用谷歌地图API。

我在很多地方都找过,但我能找到的只是使用GMAP的替代方案,但这不是我想要的


可以使用它吗?

1。自己创建对谷歌地图API的请求

您只需向GoogleMapsAPI发送HTTP请求,然后处理结果。 您可以使用伪造对GoogleAPI的请求。你需要一个合适的答案


您必须构建GET参数,例如,
origin=…&destination=…&key=YOUR\u API\u key
+解析JSON响应来处理它

(在Web服务API下)列出了请求参数和示例响应

string url = @"https://maps.googleapis.com/maps/api/directions/json?origin=75+9th+Ave+New+York,+NY&destination=MetLife+Stadium+1+MetLife+Stadium+Dr+East+Rutherford,+NJ+07073&key=YOUR_API_KEY";

WebRequest request = WebRequest.Create(url);

WebResponse response = request.GetResponse();

Stream data = response.GetResponseStream();

StreamReader reader = new StreamReader(data);

// json-formatted string from maps api
string responseFromServer = reader.ReadToEnd();

response.Close();
JSON响应看起来像这样(来自)


2。。。或使用专用库

  • 为谷歌地图提供api接口。你可以通过nuget获得它。我没试过,但看起来 非常容易使用

此库已过时,请参见

,如其他响应中所述,您可以发出HTTP请求并使用JSON响应

如果您想要一个.NET库,通过抽象查询/响应来简化您的生活,您可以使用以下用于Google Maps API的.NET包装库之一:

  • 已过时(此时回答)-方向API的上次更新是在2016年进行的

    使用示例:


    以上是Alex的回答

    在他们的示例中,他们首先尝试编写
    DurationInTraffic
    ,这仅在您提供
    departureTime
    时有效。此外,您希望值而不是对象显示秒数或文本。你可以只使用持续时间而不使用流量选项

    如果您确实想设置出发时间,此项目将自动设置为epoc/Linux/seconds(自1970年起)。但是,我没有看到像谷歌那样的“现在”选项,所以一定要先将其设置为UTC

    如果您不提供
    departureTime
    DurationInTraffic
    将为空,因此这将是错误的

    request.DepartureTime = DateTime.Now.ToUniversalTime();
    


    欢迎来到StackOverflow!我们希望在问答中有一些实际的代码。这个问题很可能就要结束了。不要因此而气馁,以后再问其他问题。@Marijn这是一个很好的指导方针吗?如果是的话,你能提供一个链接吗?嗯,在我看来这不是一个好问题,但考虑到社区的十二票反对意见。我会投票决定结束这场比赛,因为太广泛了。(现在称为“需要更多关注”。“需要更多关注-此问题目前包括一个问题中的多个问题。它应该只关注一个问题。”对于英语WebRequest页面。为什么选择“您的API密钥”。它不再是免费的了。@user6159419它最多可以释放一定数量的请求。还有这个库,它非常简单,易于使用,并且具有最流行的功能。您可以使用nuget命令安装包GuigleCore来安装它。如果url中有航路点,它会包含这些信息吗?这是一个非常有用的信息我回答。我们有没有一个链接可以向我解释GoogleApi可以执行的各种任务以及如何执行这些任务?你看,自述文件的信息量确实不是很大,这肯定会解决问题
    using GoogleApi.Entities.Common;
    using GoogleApi.Entities.Maps.Directions.Request;
    using GoogleApi.Entities.Maps.Directions.Response;
    
    public void GetRoute()
    {
        DirectionsRequest request = new DirectionsRequest();    
    
        request.Key = "AIzaSyAJgBs8LYok3rt15rZUg4aUxYIAYyFzNcw";
    
        request.Origin = new Location("Brasov");
        request.Destination = new Location("Merghindeal");
    
        var response = GoogleApi.GoogleMaps.Directions.Query(request);
    
        Console.WriteLine(response.Routes.First().Legs.First().DurationInTraffic);
        Console.WriteLine(response.Routes.First().Legs.First().Distance);
        Console.WriteLine(response.Routes.First().Legs.First().Steps);
    }
    
    request.DepartureTime = DateTime.Now.ToUniversalTime();
    
    var x = response.Routes.First().Legs.First();
                    Console.WriteLine("Duration w/ traffic: " + x.DurationInTraffic.Value + " vs w/o " + x.Duration.Value);
                    Console.ReadLine();