如何在谷歌地图上添加路线方向?

5

我在地图上有两个连接点,我想知道哪一个是起点和终点,因此我想添加路线的方向(箭头)。我该如何使用C#实现呢?以下是我的代码:

PointLatLng start1 = new PointLatLng(42.252938, 42.680411);
PointLatLng end1 = new PointLatLng(42.256321, 42.675658);
GDirections dir1;
var path1 = GMapProviders.GoogleMap.GetDirections(out dir1, start1, end1, false, false, true, true, true);
GMapRoute route1 = new GMapRoute(dir1.Route, "path1");
route1.Stroke.Color = Color.Red;
GMapOverlay lay1 = new GMapOverlay("route1");
lay1.Routes.Add(route1);
map.Overlays.Add(lay1);

这个问题用JavaScript实现可以吗? - RafatMunshi
在路线上添加方向箭头,你也可以使用JavaScript,因为谷歌已经为其地图API提供了非常好的JavaScript资源。 - RafatMunshi
我不能用C#做吗? - Leri Gogsadze
使用C#进行API调用后,您将需要自己解决问题。请参考- https://dev59.com/01sW5IYBdhLWcg3wyJl3。至于JavaScript,有很多代码和资源可供使用Google JavaScript API。 - RafatMunshi
我会展示。谢谢你的帮助。 - Leri Gogsadze
1个回答

2
您需要向谷歌地图API发送一个Web请求。
为了实现这一点,您可以按照以下步骤操作:
在C#中创建一个Web请求,并将起点和终点作为参数传递。请参考下面的代码片段(也可参考此处文档)。
特别注意这部分内容(这是您需要使用的内容):
如果您传递坐标,则会使用它们来计算方向。请确保纬度和经度值之间没有空格。origin=41.43206,-81.38992
string gMapsUrl = @"https://maps.googleapis.com/maps/api/directions/json?origin=42.252938,42.680411&destination=42.256321,42.675658&key=YOUR_API_KEY";

WebRequest directionReq = WebRequest.Create(gMapsUrl);

WebResponse directionResponse = directionReq.GetResponse();

Stream data = directionResponse.GetResponseStream();

StreamReader reader = new StreamReader(data);

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

response.Close();

注意我使用了这个标记:
origin=42.252938,42.680411&destination=42.256321,42.675658

在请求URL中。

还可以参考此SO帖子获取示例响应。同时,在您的类中使用using System.Net;以使用WebRequest

按照此SO帖子构造webRequests


我大约一周前开始使用c#编程,所以并不十分了解它。在 WebRequest 和 WebResponse 下面出现了红线,我需要添加一些类吗?比如“using System.NET”之类的东西? - Leri Gogsadze
请查看更新的答案,如果解决了您的问题,请点赞并接受此答案。 - Ankit
是的,我弄清楚它是如何工作的了。我还有一个问题:我能在谷歌地图上画方向吗?这里展示了我想要的 https://i.stack.imgur.com/ZMYB7.jpg - Leri Gogsadze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接