Клуб API Карт

Перевод тайлов из одного масштаба в другой

toxa.redham
10 марта 2016, 21:29

При использовании LoadingObjectManager и параметра %t, получаю на сервер координаты крайних тайлов в текущем масштабе. 

В БД сохранял координаты согласно статье: https://yandex.ru/blog/mapsapi/40335 , все работает хорошо. И далее если я правильно понял, что бы перевести тайлы, которые передает яндекс в тайлы масштаба полученные мной из координат, нужно сделать следующее:

YandexTile * 2^(23-YandexZoom)

Но к сожалению результат сильно не соответствует :( 

3 комментария
Подписаться на комментарии к посту
Я храню quadKey для каждой метки
В статье Bing-а все популярно описано
https://msdn.microsoft.com/en-us/library/bb259689.aspx
Хотелось бы все же найти способ перевода тайла из одного масштаба в тайл в масштабе(если не ошибаюсь) 23. Т.к. очень поможет с кешированием данных ответов. Сейчас вынужден получать от LoadingObjectManager координаты края карты в градусах и переводить в тайлы, по описанному способу по ссылке выше. Работает хорошо, но с кешированием беда :(
goalygoaly,
Ерунда же, тайл на меньшем масштабе будет содержать в себе множество тайлов на большем масштабе. Что тут куда переводить?

Надо при создании точки для ее координат высчитывать в какой тайл она попадает для всех масштабов и хранить это в виде ключа вместе с данными точки в базе.
При запросе от LOM берете из БД все точки принадлежащие данному тайлу (группе тайлов) на основании этого ключа. Хинт: для MySQL можно использовать двоичный ключ, вместо ключа по основанию 4 (см. статьи Бинга), что сильно ускорит выборку