1234567891011121314151617181920212223 |
- import requests
- import logging
- from django.http import HttpResponse, HttpResponseServerError
- from django.conf import settings
- logger = logging.getLogger(__name__)
- def geonames_altitude(request, lat, lon):
- lat = float(lat)
- lon = float(lon)
- url = settings.GEONAMES_ASTERGDEM.format(lat=lat, lon=lon)
- r = requests.get(url)
- if r.status_code != 200:
- return HttpResponseServerError()
- # The API sometimes returns an error but still sends a 200 code,
- # so we validate the answer just to make sure...
- try:
- return HttpResponse(float(r.text))
- except ValueError:
- logger.warning("api.geonames.org error: {}".format(r.text))
- return HttpResponseServerError()
|