2012-05-20 63 views
2

我想要獲取特定谷歌地圖中所有點的高度,無論是在英國還是美國,或只是隨機在世界各地,然後將海拔高度數據存儲到C#中的Array [x,y]? ?如何從C#中的Google地圖獲取海拔點?

我知道Google有一些叫做Elevation map的東西,但似乎每個人都在試圖使用它的經度/緯度,所以.. 任何人都可以給我一個鏈接,我可以找到如何獲得高度或給它一個在C#中的示例程序?

回答

2

你需要調用谷歌的其他服務,返回的方向上的高度基地或在這裏的座標是一些代碼,可以引導你在正確的道路

//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和商店無論您想要什麼元素,都可以是數據庫,列表,數組。等

Here you will found how to call service及各種不同的方式來使用該服務,看看哪些部分,你需要

+0

尼斯:d THX很多 –

+1

沒問題,記住,你應該接受的答案... – Jorge

+1

注意如果要將XML或JSON轉換爲C#結構,還可以使用自動序列化(或反序列化)。 – jv42

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