@RomkaChev

Как подключить к Яндекс.Картам свой слой, сделанный в проекции EPSG:3785?

Добрый день.

В библиотеке GDAL есть скрипт gdal2tiles.py, который позволяет нарезать изображения на плитки при помощи точек привязки (обычные GPS координаты).

Однако, вся внутренняя кухня (перевод координат и прочее) у этого скрипта завязана на Гугловской проекции EPSG:3785.
В то же время ясно, что Яндекс.Карты используют проекцию EPSG:3395.

Что в итоге дает неприятный сюрприз - номера плиток в EPSG:3785 и EPSG:3395 попросту не совпадают.

Например, плитка с вот этой координатой [54.99412, 38.026884] (Ссылка), имеет следующие адреса плиток:
ВендорПроекцияZXYСсылка на плитку
ЯндексEPSG:3395177938141576Ссылка
Google17EPSG:37857938141461blob:https%3A//www.google.ru/d8dd7055-2953-4345-82bd-8e3f12b951c3 (Гугл намудрил, но вот тут видно)
OSM17EPSG:37857938141461Ссылка
gdal2tiles17EPSG:37857938141461Честное слово

Собственно, смещение выделил.

Понятно, что это из-за того, что в Яндекс.Картах используется сфероид (EPSG:3395), а в Google, OSM, и gdal2tiles - сфера (EPSG:3785).

Само-собой видел этот раздел про пользовательские карты и генерировал плитки через вот эту программу для нарезки тайлов. Но она работает на десктопе, а не на сервере.

А нужно именно серверное решение. При этом весьма неплохо иметь один набор плиток с возможностью пересчета координат тайлов под разные проекции на клиенте:
  • В случае Google, OSM - оставить как есть
  • В случае Яндекс.Карт - пересчитать координаты плиток.


Вот и весь сабж.

Может быть есть какие-то готовые решения, библиотеки, хоть что-нибудь?
  • Вопрос задан
  • 2140 просмотров
Решения вопроса 1
forgotten
@forgotten
Руководитель разработки API Яндекс.Карт
В API Яндекс.Карт можно подключать слои в любой проекции. И даже несколько слоёв в разных проекциях одновременно.
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/refe...
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/refe...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы