Каков результат метода проекции точки с использованием RGeo::Geographic.simple_mercator_factory

У меня есть фабрика RGEO_FACTORY = RGeo::Geographic.simple_mercator_factory

И у меня есть точка(POINT(28.97566007 41.01452809)), srid которой равен 3785.

Затем я получаю новую координату, используя RGEO_FACTORY.point(lon, lat).projection. И это POINT (3225555.7243913896 5014484.790030423)

Теперь мне нужно использовать sql для запроса, чтобы повысить скорость. Вот так:"SELECT ST_AsText(ST_Transform(lat_lon, 4326)) from points WHERE points.id = 1" . Я ожидаю получить тот же результат, что и POINT (3225555.7243913896 5014484.790030423). Но я не могу понять.

И я пробовал другим srid преобразовать координату точки, но тщетно.

Что мне делать, чтобы решить эту проблему?

Заранее спасибо.


person Tony Han    schedule 27.12.2012    source источник


Ответы (1)


Когда вы используете RGeo::Geographic.simple_mercator_factory для создания точек, как вы это делаете с RGEO_FACTORY.point(lon, lat), их srid предопределен на заводе, и это не 3785, а 4326, см. документы для себя. И метод projection этих точек возвращает точки в 3785. Узнайте фактический srid вашего поля lat_lon с помощью ST_SRID(lat_lon), если это тип геометрии, а затем выясните, какой srid вы хотите скрыть.

Раскрыл это более подробно, отвечая на другой аналогичный вопрос.

person Utgarda    schedule 12.03.2013