Проблема со скачиванием тайлов из cloudmade

Мне нужно загрузить плитки для указанной области. У меня есть bbox с координатами широты/долготы, но как преобразовать их в x/y, которые требуются по URL-адресу


person Vlad...    schedule 08.11.2010    source источник


Ответы (1)


Чтобы определить, какая плитка вам нужна для данной широты и долготы, вам сначала нужно выбрать интересующий вас уровень масштабирования. Затем рассчитайте:

n = 2 ^ zoom
xtile = ((lon_deg + 180) / 360) * n
ytile = (1 - (ln(tan(lat_rad) + sec(lat_rad)) / Pi)) / 2 * n

Примечание: ln обозначает натуральный логарифм, округляющий xtile и ytile в меньшую сторону, чтобы получить целые числа плиток. Если вам нужно пойти другим путем:

n = 2 ^ zoom
lon_deg = xtile / n * 360.0 - 180.0
lat_rad = arctan(sinh( Pi * (1 - 2 * ytile / n)))
lat_deg = lat_rad * 180.0 / Pi

Этого должно быть достаточно, чтобы вы начали работать. Чтобы получить помощь по любому из API CloudMade и быть в курсе наших последних выпусков, загляните в список рассылки разработчиков.

person PavelS    schedule 09.11.2010