如何在C#中从谷歌地图获取高程点?
我试图在一张特定的谷歌地图上获取所有点的高度,无论是在英国还是美国,或者只是随机分布在世界各地,然后将高度数据存储到C#中的数组[x,y]中 我知道谷歌有一种叫做海拔图的东西,但似乎每个人都在用它来获取经度/纬度,所以。。如何在C#中从谷歌地图获取高程点?,c#,google-maps-api-3,elevation,C#,Google Maps Api 3,Elevation,我试图在一张特定的谷歌地图上获取所有点的高度,无论是在英国还是美国,或者只是随机分布在世界各地,然后将高度数据存储到C#中的数组[x,y]中 我知道谷歌有一种叫做海拔图的东西,但似乎每个人都在用它来获取经度/纬度,所以。。 有谁能给我一个链接,我可以在哪里找到海拔高度,或者给我一个C#?中的示例程序。你需要调用谷歌的rest服务,它根据方向或坐标返回海拔高度。这里有一些代码可以指导你正确的方法 //builds the URL of the service String url = "htt
有谁能给我一个链接,我可以在哪里找到海拔高度,或者给我一个C#?中的示例程序。你需要调用谷歌的rest服务,它根据方向或坐标返回海拔高度。这里有一些代码可以指导你正确的方法
//builds the URL of the service
String url = "http://maps.google.com/maps/api/elevtation/xml?address=example";
//gets the xml returned by the service
XmlTextReader xml = new XmlTextReader(url);
从这里开始,您需要解析xml并存储在您想要的任何元素中,可以是数据库、列表或数组。等等
以及使用服务并查看所需部分的所有不同方式请注意,如果要从XML或JSON转换为C#结构,还可以使用自动序列化(或此处的反序列化)。
using Newtonsoft.Json.Linq;
public double getElevation(DbGeography point)
{
//https://developers.google.com/maps/documentation/elevation/intro
var request = (HttpWebRequest)WebRequest.Create(string.Format("https://maps.googleapis.com/maps/api/elevation/json?locations={0},{1}", point.Latitude, point.Longitude));
var response = (HttpWebResponse)request.GetResponse();
var sr = new StreamReader(response.GetResponseStream() ?? new MemoryStream()).ReadToEnd();
var json = JObject.Parse(sr);
return (double)json.SelectToken("results[0].elevation");
}