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