问题是 - 如何以足够的精度通过点坐标获得高程?
现在我正在使用 Google Maps Elevation API:
string LatLngURL = "http://maps.googleapis.com/maps/api/elevation/xml?locations="
+ LatTmp.ToString(CultureInfo.GetCultureInfo("en-US"))
+ "," + LngTmp.ToString(CultureInfo.GetCultureInfo("en-US"));
AltNow.Text = LatLngURL;
XmlDocument altitudegoogle = new XmlDocument();
altitudegoogle.Load(LatLngURL);
XmlElement root = altitudegoogle.DocumentElement;
XmlNode Alt = root.SelectSingleNode("/ElevationResponse/result/elevation");
string Altitude = Alt.ChildNodes[0].InnerText;
但问题是:
- 那段代码很慢
- 结果不够准确
我也知道有GeographicLib可以获取大地水准面高度。但是大地水准面高度只是椭球和大地水准面高度之间的差异,而不是其绝对值。
所以,有两个问题:
通过坐标获取地图上点高度的最快和更准确的方法是什么?(如果 Google Elevation API 是,那么如何改进我的代码?)
是否可以使用 GeographicLib 获得它?也许我无法理解,因为英语不是我的母语,而且它的文档中的一切都很清楚。