245 |
245 |
return None
|
246 |
246 |
content = exception_text.text
|
247 |
247 |
content = html.unescape(content)
|
248 |
248 |
raise APIError(u'OpenGIS Error: %s' % exception_code or 'unknown code', data={'text': content})
|
249 |
249 |
|
250 |
250 |
def convert_coordinates(self, lon, lat, reverse=False):
|
251 |
251 |
lon, lat = float(lon), float(lat)
|
252 |
252 |
if self.projection != 'EPSG:4326':
|
253 |
|
wgs84 = pyproj.Proj(init='EPSG:4326')
|
254 |
|
target_projection = pyproj.Proj(init=self.projection)
|
|
253 |
wgs84 = pyproj.Proj('EPSG:4326')
|
|
254 |
target_projection = pyproj.Proj(self.projection)
|
255 |
255 |
if reverse:
|
256 |
|
lon, lat = pyproj.transform(target_projection, wgs84, lon, lat)
|
|
256 |
lat, lon = pyproj.transform(target_projection, wgs84, lon, lat)
|
257 |
257 |
else:
|
258 |
|
lon, lat = pyproj.transform(wgs84, target_projection, lon, lat)
|
|
258 |
lon, lat = pyproj.transform(wgs84, target_projection, lat, lon)
|
259 |
259 |
return lon, lat
|
260 |
260 |
|
261 |
261 |
def get_bbox(self, lon1, lat1, lon2, lat2):
|
262 |
262 |
if self.projection == 'EPSG:4326':
|
263 |
263 |
# send as is but invert coordinates
|
264 |
264 |
return '%.6f,%.6f,%.6f,%.6f' % (lat1, lon1, lat2, lon2)
|
265 |
|
wgs84 = pyproj.Proj(init='EPSG:4326')
|
266 |
|
target_projection = pyproj.Proj(init=self.projection)
|
267 |
|
x1, y1 = pyproj.transform(wgs84, target_projection, lon1, lat1)
|
268 |
|
x2, y2 = pyproj.transform(wgs84, target_projection, lon2, lat2)
|
|
265 |
wgs84 = pyproj.Proj('EPSG:4326')
|
|
266 |
target_projection = pyproj.Proj(self.projection)
|
|
267 |
x1, y1 = pyproj.transform(wgs84, target_projection, lat1, lon1)
|
|
268 |
x2, y2 = pyproj.transform(wgs84, target_projection, lat2, lon2)
|
269 |
269 |
return '%.6f,%.6f,%.6f,%.6f' % (x1, y1, x2, y2)
|
270 |
270 |
|
271 |
271 |
@endpoint(
|
272 |
272 |
perm='can_access',
|
273 |
273 |
description=_('Get feature info'),
|
274 |
274 |
parameters={
|
275 |
275 |
'lat': {'description': _('Latitude'), 'example_value': '45.79689'},
|
276 |
276 |
'lon': {'description': _('Longitude'), 'example_value': '4.78414'},
|
277 |
|
-
|