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

时间:2017-09-06 05:20:06

标签: c# google-maps

我在地图上有两个连接点,我想知道哪一个是起点和终点,所以我想添加路线的方向(箭头)。我怎么能用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);

1 个答案:

答案 0 :(得分:1)

您需要向Google地图API发送web request

为此,您可以按照以下步骤操作:

在C#中创建Web请求并将start和endpoint作为参数传递,请查看下面的代码段(也是refer docs here

特别注意这部分(这是你需要使用的):

  

如果您传递坐标,则不加改变地使用它们进行计算   方向。确保纬度和纬度之间不存在空间   经度值。原点= 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

请求网址。

另请参阅此SO post以获取样本回复 也可以在班级中使用using System.Net;来使用WebRequest

按照SO post进行构建webRequests