private double QueryEarthtoolsElevation(AXPoint point) { var altitude = 0.0; var template = "http://www.earthtools.org/height/{0}/{1}"; var llPos = new UtmCoordinates(Datum.WGS84, Engine.Settings.UtmZone, point.Easting, point.Northing, 0).ToLatLon(Datum.WGS84); var url = string.Format(NumberFormatInfo.InvariantInfo, template, llPos.Latitude.Degrees, llPos.Longitude.Degrees); try { var wCli = new WebClient() { Encoding = Encoding.UTF8, }; var XMLstr = wCli.DownloadString(url); var xml = XElement.Parse(XMLstr); altitude = double.Parse(xml.Descendants(XName.Get("meters")).First().Value, NumberFormatInfo.InvariantInfo); } catch { AddNote(string.Format("could not retrieve ground elevation, using 0m MSL"), true); } return(altitude); }
private double QueryGoogleElevation(AXPoint point) { var altitude = 0.0; var template = "http://maps.googleapis.com/maps/api/elevation/xml?locations={0},{1}&sensor=true"; var llPos = new UtmCoordinates(Datum.WGS84, Engine.Settings.UtmZone, point.Easting, point.Northing, 0).ToLatLon(Datum.WGS84); var url = string.Format(NumberFormatInfo.InvariantInfo, template, llPos.Latitude.Degrees, llPos.Longitude.Degrees); try { var wCli = new WebClient() { Encoding = Encoding.UTF8, }; var XMLstr = wCli.DownloadString(url); var xml = XElement.Parse(XMLstr); altitude = double.Parse(xml.Descendants(XName.Get("elevation")).First().Value, NumberFormatInfo.InvariantInfo); } catch { AddNote(string.Format("could not retrieve ground elevation, using 0m MSL"), true); } return(altitude); }
private void buttonCoords_Click(object sender, RoutedEventArgs e) { var wgs84 = Datum.GetInstance("WGS84"); var ed50 = Datum.GetInstance("European 1950"); var osgb36 = Datum.GetInstance("OSGB36"); Coordinates p1, p2, p3; Print("From latlon WGS84 to UTM ED50 and back"); p1 = new LatLonCoordinates(wgs84, 41.973256, 2.780310, 87.0); p2 = p1.ToUtm(ed50); p3 = p2.ToLatLon(wgs84); Print(p1.ToString()); Print(p2.ToString()); Print(p3.ToString()); Print(""); Print("From UTM ED50 to UTM WGS84 and back"); p1 = new UtmCoordinates(ed50, "31T", 365000, 4612000, 56); p2 = p1.ToUtm(wgs84); p3 = p2.ToUtm(ed50); Print(p1.ToString()); Print(p2.ToString()); Print(p3.ToString()); Print(""); Print("From UTM ED50 (default zone) to UTM ED50 (different zone) and back"); p1 = new UtmCoordinates(ed50, "31T", 365000, 4612000, 56); p2 = p1.ToUtm(ed50, "30T"); p3 = p2.ToUtm(ed50); Print(p1.ToString()); Print(p2.ToString()); Print(p3.ToString()); Print(""); }