Postgis / Proj 900913 до 4326 проблем проекции с координатой Y - PullRequest
3 голосов
/ 16 сентября 2010

это старая версия, но я не могу найти решение.

Когда я хочу выполнить st_transform для координаты 900913 в системе 4326, координата y сдвигается.

пример:

SELECT AsText (Transform (Transform (GeomFromText ('POINT (449760.25168159 6790560.4594059)', 900913), 4326), 900913))

здесь исходная точка 900913 - это st_stransformed к 4326 и обратно к 900913.результат не исходная точка, у отличается.(Я вставлю результат позже, у меня его здесь нет).

Я попытался изменить proj4text для 4326, добавив + nadgrids = @ null, как будто я где-то читал

proj4text дляsrid 4326 в настоящее время:

"выберите proj4text из пространственного_ref_sys, где srid = 4326" + proj = longlat + ellps = WGS84 + datum = WGS84 + no_defs

в настоящее время proj4text для srid 900913:

"выберите proj4text изatial_ref_sys где srid = 900913 "+ proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0.0 + lon_0 = 0.0 + x_0 = 0.0 + y_0 = 0 + k = 1.0 + unit = m + nadgrids = @ null + no_defs

Я также пытался сделать проекцию из 900913 в другую проекцию в 4326, но я получил ту же точку, что и прямое преобразование из 900913 в 4326.

У кого-нибудь есть идеи?

EJ

Ответы [ 2 ]

1 голос
/ 24 ноября 2017

EPSG: 900913 - плохо определенная проекция.Вместо этого вы должны использовать EPSG: 3857, который должен быть точно таким же сферическим меркатором, но стандартизированным.

Любое перепроецирование - это операция с потерями.Преобразование координаты назад и вперед приведет к появлению шума в последних двоичных разрядах, что, как правило, составляет менее миллиметровой ошибки.

0 голосов
/ 29 апреля 2011

Какую версию PostGIS вы используете?Я пробовал запрос с этой конфигурацией: POSTGIS="1.5.2" GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.7.1, 23 September 2009", и он отлично работает.

Несмотря на это, у меня возникли некоторые проблемы, связанные с 900913 координатами.

...