Какие масштабы карты связаны с уровнями масштабирования в mapquest?

В моем проекте Android я использую данные mapquest с OSMdroid. Я хотел бы знать, какие масштабы карты обеспечивают уровни масштабирования (например, 1: 10000 и т. Д.). Я только что нашел уровень масштабирования для масштабирования в зависимости от DPI (зависит ли масштаб карты от ширины и высота вида карты, которую я показываю?). Если я использую сайт карты mapquest, я просто вижу масштаб карты в левом нижнем углу, но не в соотношение вроде 1:10000, которое мне действительно нужно.

Каковы масштабы 1: x на уровне масштабирования 16,15,14?


person MojioMS    schedule 11.09.2013    source источник


Ответы (2)


Здесь происходит несколько вещей. Позвольте мне пройти через это, как я это понимаю.

Во-первых, я считаю, что то, что вы видите в ссылке на Mapquest, является соотношением. Итак, для уровня масштабирования 16,15,14:

14 = 1:27083
15 = 1:13541
16 = 1:6770

Хотя в ссылке это не указано, это должно быть в метрах. Таким образом, при уровне масштабирования 14 каждый пиксель соответствует 27083 метрам.

Кроме того, соотношения карт Bing можно найти здесь. Они довольно близки к цифрам, которые сообщает Mapquest, но они не совпадают.

Так почему цифры разные? Потому что соотношение метров на пиксель меняется в зависимости от того, на какой широте вы находитесь. Из-за искажения, которое производит проекция Меркатора, количество метров на пиксель не является постоянным при изменении широты. Значения карт Bing — это значения на экваторе. Я не знаю, откуда берутся значения Mapquest.

Наконец, чтобы рассчитать метры на пиксель в osmdroid, вы можете вызвать:

TileSystem.GroundResolution(latitude, zoomLevel);

И это даст вам метры на пиксель для определенной широты. Я рекомендую вам взглянуть на ScaleBarOverlay osmdroid для примера того, как применить эту информацию.

person kurtzmarc    schedule 11.09.2013
comment
я не имел в виду, что проекция меркатора меняет масштаб в зависимости от значения широты. - person MojioMS; 11.09.2013

Оставайтесь на широте 0° или на экваториальной линии (радиус Земли составляет 6372,7982 км для земной модели карты, а экваториальная окружность приблизительно равна 40041,472 км):

  • уровень масштабирования 0 представляет 360° в окне (256 пикселей), которое находится на экваториальной линии 40 041 км.
  • масштабирование 1 только на 180° в том же окне, которое составляет 20020 км
  • масштабирование 2 равно 90° или 10010 км.
  • и так далее всегда вдвое.

Масштаб (всегда говоря по экваториальной линии) зависит от размера вашего окна, если оно шириной 1 км, то это:

  • масштабирование 0 равно 1:40041
  • зум 1 равен 1:20020
  • масштабирование x равно 1:40041/2^x
  • так далее

Если окно шириной 1 дюйм:

  • масштабирование 0 равно 1 дюйму: 40041 км или 1: 1 576 417 322
  • зум 10 — это 1 дюйм: 40041/1024 км или 1:1 539 470
  • зум 16 это 1:24054

Если окно имеет ширину 200 пикселей (для экрана с разрешением 180 точек на дюйм):

  • масштабирование 0 равно 200px:40041km или 1:1'418'775'590
  • зум 18 равен 200px:40041km/2^18 или 1:5412

Это как раз на экваториальной линии (0° широты). На севере или юге необходимо применять поправочный коэффициент, который равен cos (градусы широты).

person Zanna    schedule 15.10.2015
comment
спасибо, но ответ kurtzmarc был более полезен для меня как разработчика (и он был более правильным по времени) - person MojioMS; 17.10.2015