Мне нужно загрузить плитки для указанной области. У меня есть bbox с координатами широты/долготы, но как преобразовать их в x/y, которые требуются по URL-адресу
Проблема со скачиванием тайлов из cloudmade
Ответы (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