2

问题是 - 如何以足够的精度通过点坐标获得高程?

现在我正在使用 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;

但问题是:

  1. 那段代码很慢
  2. 结果不够准确

我也知道有GeographicLib可以获取大地水准面高度。但是大地水准面高度只是椭球和大地水准面高度之间的差异,而不是其绝对值。

所以,有两个问题:

  1. 通过坐标获取地图上点高度的最快和更准确的方法是什么?(如果 Google Elevation API 是,那么如何改进我的代码?)

  2. 是否可以使用 GeographicLib 获得它?也许我无法理解,因为英语不是我的母语,而且它的文档中的一切都很清楚。

4

0 回答 0