Здесь происходит несколько вещей. Позвольте мне пройти через это, как я это понимаю.
Во-первых, я считаю, что то, что вы видите в ссылке на 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