我正在尝试获取特定Google地图中所有点的高度,无论是在英国还是美国,或者只是随机地在世界各地,然后将高度数据存储到C#中的数组[x,y]中??
我知道谷歌有一种名为Elevation的地图,但似乎每个人都试图使用它来获得经度/纬度,所以...... 任何人都可以链接到我可以找到如何获得海拔高度或在C#中为它提供示例程序的链接?
答案 0 :(得分:2)
你需要调用google的其余服务,它会根据方向或坐标返回高程,这里有一些可以正确指导你的代码
//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并存储在你想要的任何元素中,可以是数据库,List,Array。等。
Here you will found how to call service以及使用服务的所有不同方式,并查看您需要的部分
答案 1 :(得分:0)
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");
}