Клуб API Карт

как получить координаты тайла и смещение

Пост в архиве.
lerneree
26 марта 2013, 22:00

Здравствуйте! Мой скрипт с API 2.0 http://fancyfree-club.ru/tiles/events_pix.html определяет координаты щелчка в абсолютных пикселах и  zoom. Подскажите пожалуйста формулу по которой я могу получить координаты тайла и смещения в точности как это сделано здесь

http://webmap-blog.ru/examples/ymap_pr_43.html    (API 1.0)

Спасибо

12 комментариев

Вам уже ответили в предыдущем вопросе.

берем - e.get('globalPixels'), делим каждую координату на 256

Спасибо за помощь. Я сделал так, как Вы сказали и все работает. При определнии координта меняя смущает нужно ли както учитывать zoom. Ведь при каждом zoom число тайлов другое

Из документации:

globalPixels - координаты события в глобальных пикселях от левого верхнего угла мира (также доступно под именем globalPixelPosition);


Если меняется zoom - количество тайлов тоже меняется.

map.events.add("click", function (e) {

tile = Math.round(e.get('globalPixels')[0] / 256) + ' ' + Math.round(e.get('globalPixels')[1] / 256);

offset = Math.round(e.get('globalPixels')[0] % 256) + ' ' + Math.round(e.get('globalPixels')[1] % 256);

alert('coords: ' + e.get("coordPosition") + '\n zoom: ' + map.getZoom() + '\n tile: ' + tile + '\n offset: ' + offset);

});

Спасибо. Попробую.

И все таки я одной вещи понять не могу. Например при маштабе 0 есть один тайл который покрывает всю землю. А при  маштабе 2 4 тайла.Если я кликаю в правый верхний угол, то при маштабе 0 это тайл 1, а при маштабе 1 это тайл 2. Формула вроде должна както учитывать маштаб

 

При изменении zoom'а количество тайлов меняется, следовательно метод e.get('globalPixels') вернет пиксельные координаты, учитывая количество тайлов на данном масштабе (zoom'е), это очевидно.

Спасибо, понял. Сделаю, посмотрим

http://fancyfree-club.ru/tiles/events_pix.html

работает вот так. похоже, что правильно. Ваше мнение?

координаты клика не верны

А тайлы определяет правильно. Мы сравниваем с работающим примером на 1.0 http://webmap-blog.ru/examples/ymap_pr_43.html

С Math.round двала ошибку  номера тайла в 1, заменили на parseInt стало нормальною Вообще в 2.0 изменения есть. Например при указании центра карты порядок координат другой

Порядок координат можно выбирать с помощью параметра в урле подключения АПИ

Спасибо, бабушка.  А то был в конфузе