opengis: upgrading to pyproj-2 (#55285)
https://pyproj4.github.io/pyproj/stable/gotchas.html#upgrading-to-pyproj-2-from-pyproj-1
This commit is contained in:
parent
48d23784e0
commit
6832591ca7
|
@ -18,7 +18,6 @@ import html
|
|||
import math
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
import pyproj
|
||||
import six
|
||||
from django.contrib.postgres.fields import JSONField
|
||||
from django.core.cache import cache
|
||||
|
@ -30,6 +29,7 @@ from django.urls import reverse
|
|||
from django.utils import timezone
|
||||
from django.utils.text import slugify
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from pyproj import CRS, Transformer
|
||||
|
||||
from passerelle.base.models import BaseQuery, BaseResource
|
||||
from passerelle.utils.api import endpoint
|
||||
|
@ -250,22 +250,25 @@ class OpenGIS(BaseResource):
|
|||
def convert_coordinates(self, lon, lat, reverse=False):
|
||||
lon, lat = float(lon), float(lat)
|
||||
if self.projection != 'EPSG:4326':
|
||||
wgs84 = pyproj.Proj('EPSG:4326')
|
||||
target_projection = pyproj.Proj(self.projection)
|
||||
wgs84 = CRS('EPSG:4326')
|
||||
target_projection = CRS(self.projection)
|
||||
if reverse:
|
||||
lat, lon = pyproj.transform(target_projection, wgs84, lon, lat)
|
||||
transformer = Transformer.from_crs(target_projection, wgs84)
|
||||
lat, lon = transformer.transform(lon, lat)
|
||||
else:
|
||||
lon, lat = pyproj.transform(wgs84, target_projection, lat, lon)
|
||||
transformer = Transformer.from_crs(wgs84, target_projection)
|
||||
lon, lat = transformer.transform(lat, lon)
|
||||
return lon, lat
|
||||
|
||||
def get_bbox(self, lon1, lat1, lon2, lat2):
|
||||
if self.projection == 'EPSG:4326':
|
||||
# send as is but invert coordinates
|
||||
return '%.6f,%.6f,%.6f,%.6f' % (lat1, lon1, lat2, lon2)
|
||||
wgs84 = pyproj.Proj('EPSG:4326')
|
||||
target_projection = pyproj.Proj(self.projection)
|
||||
x1, y1 = pyproj.transform(wgs84, target_projection, lat1, lon1)
|
||||
x2, y2 = pyproj.transform(wgs84, target_projection, lat2, lon2)
|
||||
wgs84 = CRS('EPSG:4326')
|
||||
target_projection = CRS(self.projection)
|
||||
transformer = Transformer.from_crs(wgs84, target_projection)
|
||||
x1, y1 = transformer.transform(lat1, lon1)
|
||||
x2, y2 = transformer.transform(lat2, lon2)
|
||||
return '%.6f,%.6f,%.6f,%.6f' % (x1, y1, x2, y2)
|
||||
|
||||
@endpoint(
|
||||
|
|
Loading…
Reference in New Issue