public override double GetElevationFromWebService(double lat, double lng) { if (string.IsNullOrEmpty(_apiKey)) { return(0); } try { string url = $"https://open.mapquestapi.com/elevation/v1/profile?key={_apiKey}&callback=handleHelloWorldResponse&shapeFormat=raw&latLngCollection={lat},{lng}"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Credentials = CredentialCache.DefaultCredentials; request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2"; request.ContentType = "application/json"; request.Referer = "https://open.mapquestapi.com/elevation/"; request.ReadWriteTimeout = 2000; string responseFromServer = ""; using (WebResponse response = request.GetResponse()) { using (Stream dataStream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(dataStream)) { responseFromServer = reader.ReadToEnd(); responseFromServer = responseFromServer.Replace("handleHelloWorldResponse(", ""); responseFromServer = responseFromServer.Replace("]}});", "]}}"); MapQuestResponse mapQuestResponse = JsonConvert.DeserializeObject <MapQuestResponse>(responseFromServer); if (mapQuestResponse.elevationProfile != null && mapQuestResponse.elevationProfile.Count > 0 && mapQuestResponse.elevationProfile[0].height > -100) { return(mapQuestResponse.elevationProfile[0].height); } // All error handling is handled inside of the ElevationService. } } } catch (Exceptions.ActiveSwitchByRuleException ex) { throw ex; } catch (Exception) { // If we get here for any reason, then just drop down and return 0. } return(0); }
public override double GetElevationFromWebService(double lat, double lng) { if (string.IsNullOrEmpty(ApiKey)) { return(0); } double elevationInMeters = 0; try { string url = $"https://open.mapquestapi.com/elevation/v1/profile?key={ApiKey}&callback=handleHelloWorldResponse&shapeFormat=raw&latLngCollection={lat},{lng}"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Credentials = CredentialCache.DefaultCredentials; request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2"; request.ContentType = "application/json"; request.Referer = "https://open.mapquestapi.com/elevation/"; request.ReadWriteTimeout = 2000; using (WebResponse response = request.GetResponse()) { using (Stream dataStream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(dataStream)) { string responseFromServer = reader.ReadToEnd(); responseFromServer = responseFromServer.Replace("handleHelloWorldResponse(", ""); responseFromServer = responseFromServer.Replace("]}});", "]}}"); MapQuestResponse mapQuestResponse = JsonConvert.DeserializeObject <MapQuestResponse>(responseFromServer); if (mapQuestResponse.ElevationProfile != null && 0 < mapQuestResponse.ElevationProfile.Count) { elevationInMeters = mapQuestResponse.ElevationProfile[0].Height; } } } } catch (Exception ex) { _logger.Error(ex, "Could not get elevation/altitude. Returning 0."); elevationInMeters = 0; } return(elevationInMeters); }