如何从C#中获取谷歌地图的高程点数?

时间:2012-05-20 16:47:24

标签: c# google-maps-api-3 elevation

我正在尝试获取特定Google地图中所有点的高度,无论是在英国还是美国,或者只是随机地在世界各地,然后将高度数据存储到C#中的数组[x,y]中??

我知道谷歌有一种名为Elevation的地图,但似乎每个人都试图使用它来获得经度/纬度,所以...... 任何人都可以链接到我可以找到如何获得海拔高度或在C#中为它提供示例程序的链接?

2 个答案:

答案 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");
    }