C# 用于C的谷歌地图API#
我对使用API真的很陌生,所以在浏览了GoogleMapsAPI页面之后,我不确定是否有专门为C#设计的API。我不需要在我的应用程序上显示谷歌地图;我只需要知道我是否可以在C#上使用谷歌地图API。 我在很多地方都找过,但我能找到的只是使用GMAP的替代方案,但这不是我想要的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
可以使用它吗?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();