Вопрос

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

Это было полезно?

Решение

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

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 и для того, чтобы быть в курсе наших последних выпусков, взгляните на список рассылки разработчиков.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top