Может ли кто-нибудь предоставить мне ссылку (или некоторые подробности) о фактическом отношении к показателям «уровня масштабирования» для Карт Google?
например, Google Maps Level 13 = 1: 20000
google-maps
scale
zoom
mlo55
источник
источник
Zoom level set meters: ${meters}
); var zoomfactor = 1; if (метров <1128) {zoomfactor = 15; } else if ((метров> 1128) && (метров <2256)) {zoomfactor = 14; } else if ((метров> 2256) && (метров <4513)) {zoomfactor = 13; } else if ((метров> 4513) && (метров <9027)) {zoomfactor = 12; } else if ((метров> 9027) && (метров <18055)) {zoomfactor = 11; } else if ((метров> 18055) && (метров <36111)) {zoomfactor = 10; } else if ((метров> 36111) && (метров <72Ответы:
Если вы проектируете карту, которую планируете наложить на карты Google или виртуальную Землю, и создаете схему листов, то я думаю, что вам нужны шкалы для каждого уровня масштабирования, используйте их:
Источник: http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#designing_overlay_gm_mve.htm
источник
Я нашел этот ответ, написанный сотрудником Google, который, вероятно, будет наиболее точным:
взяты из: https://groups.google.com/forum/#!topic/google-maps-js-api-v3/hDRO4oHVSeM
Кстати, я предполагаю, что:
источник
Чтобы помочь вам понять математику (не точный расчет, это просто для иллюстрации):
скажем, ваш монитор компьютера имеет 100 пикселей на дюйм (PPI). Это означает, что 256 пикселей имеют длину около 6,5 см. И это 0,065 м .
на уровне масштабирования 0 все 360 градусов долготы видны в одной плитке . Вы не можете наблюдать это в Картах Google, так как он автоматически перемещается на уровень масштабирования 1, но вы можете видеть это на карте OpenStreetMap (он использует ту же схему листов).
360 градусов на экваторе равны окружности Земли, 40 075,16 км, что составляет 40075160 м.
разделите 40075160 м на 0,065 м, и вы получите 616313361 , который является шкалой уровня масштабирования 0 на экваторе для монитора компьютера с 100 DPI
Также проверьте: http://wiki.openstreetmap.org/wiki/FAQ#What_is_the_map_scale_for_a_particular_zoom_level_of_the_map.3F
источник
591657550.500000
уровню 0 в соответствии с этим ответом. Но в соответствии с @CaptDragon это уровень 1. Я должен рассмотреть вопрос о том, чтобы начать с уровня 1 для расчета с помощью Google Maps?Не так просто. Учитывая проекцию, размер пикселей мозаичного изображения зависит от широты области, которая вас интересует. Затем с точки зрения преобразования размера пикселя мозаичного изображения в размер пикселя экрана, это зависит от экрана и разрешения, при котором отображаются данные, точек на дюйм ваш экран использует.
источник
Прямой авторитетный правильный ответ:
это дает вам таблицу выше, ввод уровня масштабирования.
Попробуйте вживую на jsfiddle.net
Поскольку вопрос касается только Google MAPS, а не EARTH, OP не заботится о трехмерной геометрии. Карты Google УЖЕ выровнены, поэтому 1 пиксель всегда на одном и том же расстоянии (в градусах, что относится к карте Google), здесь и в экваторе, как на полюсах.
Кстати, вы поняли, что где-то внутри первого ряда пикселей карты мира масштаб составляет 1: 1?
источник
Такая таблица есть в документации по системе листов Virtal Earth от Microsoft . Но, как сказал GuillaumeC, значения зависят от широты и разрешения экрана. В таблице приведены значения, измеренные на экваторе и с разрешением экрана 96 точек на дюйм.
PS: Не уверен в этом, но уровни масштабирования от Microsoft могут быть смещены на 1 по сравнению с уровнями масштабирования от Google. Но они определенно используют одну и ту же проекцию, поэтому значения остаются правильными для Google.
источник
Радиус @ Экватор 6 378 137 метра (WGS-84)
Oкружность экватора = 40 075 017 метров (2πr)
Уровень масштабирования 24 использует от 2 до 32 мощных (4 294 967 296) пикселей по окружности.
Экваториальная окружность / 2 32 = .009330692 метра на пиксель
Единица на Широте = (Косинус Широты) X (Единица на Экваторе)
Уровень масштабирования удваивается каждый шаг.
1 фут (международный) = 0,3048 метра
редактировать
Ну, это не совсем законный вопрос для начала. Коэффициенты масштабирования относятся к печатным документам, а не к экранам компьютеров. Вам нужно, чтобы эти изображения использовались с любой точностью, чтобы знать размер каждого пикселя, а затем масштабировать изображение в соответствии с вашим наложением.
Итак, еще 15-20 лет назад кто-то взял WGS-84 в качестве базы данных. (обратите внимание, что в предыдущем посте кто-то использовал значение 40 075 160) Я видел это в Википедии в нескольких местах, и это неверно. Правильное значение - 40 075 017
Затем они взяли это и разделили на целое 32-битное целое число. Это логичный выбор, поскольку он дает глобальную точность примерно до одного сантиметра, что достаточно для аэрофотоснимков. 32-разрядные целые числа также эффективны для хранения и обработки.
Почему был выбран 24-й уровень, я не знаю, так как кто-то еще здесь сработал, 0 дает вам одну плитку 256 пикселей для Земли.
Теперь для примера того, как использовать вышеупомянутые данные. Допустим, у меня есть изображение с уровнем масштабирования 20 (настолько увеличенное, насколько позволяют в настоящее время). Возьмите 0,009330692 (масштаб 24 на экваторе), удвоите его для увеличения 23, снова для увеличения 22, снова для увеличения 21 и в последний раз для увеличения 20 Теперь у вас должно быть 0.149231071.
Теперь предположим, что наше изображение находится на широте 45. Возьмите его косинус (0,707106781) и умножьте его на наш 0,149231071, и он даст вам 0,105564729 метров. Это длина и высота одного пикселя изображения на широте 45 при уровне масштабирования 20. Если вы снимаете с экрана изображение этой области размером 1000 x 1000 пикселей, его размер составляет 105,56 квадратных метра. Если вы хотите, чтобы ноги разделили это 0,3048
Что касается источников, то я, по сути, 5 лет назад обратил внимание на различную информацию и документацию, которые я нашел в Интернете, включая сайты поддержки картографов Google и MS.
Я использовал эту сотню времени и наложил ее на данные полевых исследований, и это всегда было правильно. Сравните это с любыми таблицами, размещенными здесь, и числа будут совпадать.
источник
Просто сделал несколько расчетов и получил следующие результаты:
На Картах Google показана линейка длиной 1 км (слева внизу от карты), длина которой составляет 90 пикселей при уровне масштабирования 13. Это означает следующее:
Предполагая, что разрешение экрана составляет 96 точек на дюйм или 36 точек на дюйм, при уровне масштабирования 13 мы имеем 0,4 км (от 36/90) на 1 см, что дает масштаб карты 1: 40000 для экрана с разрешением 96 точек на дюйм.
Для различных операций на экране лучше всего взять 90px за основу, так как все числа будут округлены при всех уровнях масштабирования, т.е.
и так далее.
Обратите внимание, что это приближение, которое должно работать более или менее хорошо на меньших масштабах, а не на больших.
(И Google любит круглые числа в конце ...)
источник
Основываясь на всей предоставленной информации, я построил функцию, которая дает лучший z, примененный к карте, когда вы хотите иметь горизонтальную линию, которая представляет N% отображаемой Карты.
Отображаемая карта характеризуется собственной шириной в пикселях.
источник
Я еще не могу добавить комментарий, но это возможный источник ответа Пита выше: https://developers.google.com/maps/documentation/javascript/maptypes#MapCoordinates
источник
Я рассчитал весы для четырех уровней масштабирования:
Уровень масштабирования | Масштаб 20 1: 500 19 1: 1000 18 1: 2000 17 1: 4000
Кажется, что масштаб увеличивается вдвое, поскольку уровень масштабирования увеличивается на один шаг. Итак, я надеюсь, что масштаб для уровня масштабирования 16 будет 1: 8000 и так далее.
источник
Привет, я думаю, что я рассчитал, что 1 пиксель = 11.627 км по прямой; без учета радиуса земли. Вот ссылка на видео, объясняющая как: https://www.youtube.com/watch?v=Y3cvTeiMJqE&feature=youtu.be . Надеюсь, что очистить ваш разум.
источник