PyProj: отображение широты / долготы на прямоугольник с использованием координат x,y
У меня есть ряд координат широты / долготы, которые я пытаюсь спроецировать на карту как координаты x,y.
Я использую https://code.google.com/p/pyproj/ библиотеку для преобразования координат. Кажется, я нигде не могу найти нигде, который объясняет, что означают выходные данные функций?
import PyProj
def ConvertToMapProjection(Coordinates):
''' Projects a mapped pair of coordinates onto a map '''
# Define the projection
RobinsonProjection = pyproj.Proj("+proj=robin +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs")
East, North = RobinsonProjection(Coordinates[0],Coordinates[1])
return [East,North]
ConvertToMapProjection ([51.5072,0.1275])
возвращает:
[4866232.474090106, 13636.369990048854]
Не понятно, что это за единицы? Какой лучший способ отобразить это на прямоугольнике 900 x 1100?
1 ответ
Единицами измерения по умолчанию являются метры (вы даже указываете это в команде).
Используемый вами ссылочный эллипсоид WGS84 со средним радиусом 6356752,3142 метра (см. proj -le
)
Вы можете уменьшить его на этот коэффициент, чтобы получить "единичный эллипсоид":
$ proj +proj=robin +ellps=WGS84 -m 1:6356752.3142
Еще проще, но не так точно, будет проецирование с использованием сферы юнитов:
$ proj +proj=robin +a=1
Ответ на вторую часть вашего вопроса изложен в этом посте.