Клуб API Карт

Преобразование координат тайла

Пост в архиве.

Добрый день!

Хочу использовать слой активных областей, но не совсем понимаю, как правильно преобразовать координаты тайла в мировые и пиксельные. Для получения тайла карта посылает запрос на сервер в виде http://someserver.ru/tiles-X-Y-Z.png, где X и Y - это координаты тайла, а Z - текущий зум на карте (например, tile-9911-5131-14.png). Через jsApi преобразовать координаты несложно:

map.coordSystem.toCoordPoint(

    map.tileCoordinates.toPixels(new YMaps.Point(9911, 5131), new YMaps.Point(0, 0), 14) // левый верхний угол тайла

)

А вот как сделать такие преобразования на сервере? И как посчитать сдвиг в пикселях на самом тайле для всех найденных точек в этой области?

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

3 комментария

Спасибо, с этим разобрался. А как, зная X и Y тайла и уровень зума, определить координаты другой точки внутри тайла (256х256)?

Sergey Konstantinov
28 января 2016, 05:38

1) перевести в пикселы на текущем масштабе:

(X*256 + offsetX, Y*256 + offsetY)

2) отмасштабировать на 23 масштаб: домножить на 2 в степени 23 - Z

3) перевести в геокоординаты по формулам.