Projet

Général

Profil

0002-opengis-update-initialization-method-55284.patch

Nicolas Roche, 02 juillet 2021 13:51

Télécharger (2,64 ko)

Voir les différences:

Subject: [PATCH 2/2] opengis: update initialization method (#55284)

https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6
 passerelle/apps/opengis/models.py | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
passerelle/apps/opengis/models.py
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
-