Czy ktoś może podać mi link (lub kilka szczegółów) na temat rzeczywistego stosunku do wartości „poziomu powiększenia” w Mapach Google?
np. Mapy Google Poziom 13 = 1: 20000
google-maps
scale
zoom
mlo55
źródło
źródło
Zoom level set meters: ${meters}
); var zoomfactor = 1; if (metry <1128) {współczynnik powiększenia = 15; } else if ((metry> 1128) && (metry <2256)) {zoomfactor = 14; } else if ((metry> 2256) i& (metry <4513)) {zoomfactor = 13; } else if ((metry> 4513) i& (metry <9027)) {zoomfactor = 12; } else if ((metry> 9027) && (metry <18055)) {zoomfactor = 11; } else if ((metry> 18055) i& (metry <36111)) {zoomfactor = 10; } else if ((metry> 36111) i& (metry <72Odpowiedzi:
Jeśli projektujesz mapę, którą planujesz nałożyć na mapy Google lub wirtualną ziemię i tworzysz schemat kafelkowania, to myślę, że szukasz skal dla każdego poziomu powiększenia, użyj tych:
Źródło: http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#designing_overlay_gm_mve.htm
źródło
Znalazłem tę odpowiedź - napisaną przez pracownika Google - prawdopodobnie byłaby najdokładniejsza:
pochodzi z: https://groups.google.com/forum/#!topic/google-maps-js-api-v3/hDRO4oHVSeM
BTW - Zgaduję, że:
źródło
Aby pomóc Ci zrozumieć matematykę (nie jest to dokładne obliczenie, to tylko dla ilustracji):
powiedzmy, że monitor komputera ma 100 pikseli na cal (PPI). Oznacza to, że 256 pikseli ma około 6,5 cm długości. A to 0,065 m .
na poziomie powiększenia 0 całe 360 stopni długości geograficznej jest widoczne w jednym kafelku . Nie można tego zaobserwować w Mapach Google, ponieważ automatycznie przechodzi ono do poziomu powiększenia 1, ale można to zobaczyć na mapie OpenStreetMap (używa tego samego schematu kafelkowania).
360 stopni na równiku jest równych obwodowi Ziemi, 40 075,16 km, czyli 40075160 m
podzielić 40075160 m do 0,065 m , a dostaniesz 616313361 , który jest skala poziomu powiększenia 0 na równiku na monitorze komputera przy 100 DPI
Sprawdź także: http://wiki.openstreetmap.org/wiki/FAQ#What_is_the_map_scale_for_a_particular_zoom_level_of_the_map.3F
źródło
591657550.500000
wynosi Poziom 0 zgodnie z tą odpowiedzią. Ale według @CaptDragon jest Poziom 1. Powinienem rozważyć rozpoczęcie od poziomu 1, aby obliczyć za pomocą Google Maps?Nie tak łatwo. Biorąc pod uwagę rzut, rozmiar pikseli kafelka zależy od szerokości geograficznej interesującego cię obszaru. Następnie, jeśli chodzi o przekształcanie rozmiaru piksela kafelka w rozmiar piksela ekranu, zależy to od ekranu i rozdzielczości wyświetlanych danych, dpi używa twojego ekranu.
źródło
Prosta, wiarygodna poprawna odpowiedź:
daje powyższą tabelę, wprowadzając poziom powiększenia.
Wypróbuj na żywo na jsfiddle.net
Ponieważ pytanie dotyczy tylko Google MAPS, a nie ZIEMI, OP nie dba o geometrię 3D. Mapy Google są JUŻ spłaszczone, więc 1 piksel jest zawsze tej samej odległości (w STOPNIACH, co dotyczy mapy google), tutaj iw ekwatorze, jak na biegunach.
Nawiasem mówiąc, czy zdałeś sobie sprawę, że gdzieś w pierwszym rzędzie pikseli mapy świata skala wynosi 1: 1?
źródło
Taka tabela znajduje się w dokumentacji systemu Virtal Earth Tile System firmy Microsoft . Ale jak powiedział GuillaumeC, wartości zależą od szerokości geograficznej i rozdzielczości ekranu. Tabela podaje wartości zmierzone na równiku i przy rozdzielczości ekranu 96 dpi.
PS: Nie jestem tego pewien, ale poziomy powiększenia przez Microsoft mogą być przesunięte o 1 w porównaniu do poziomów powiększenia przez Google. Ale ostatecznie używają tej samej projekcji, aby wartości pozostały prawidłowe dla Google.
źródło
Promień @ Equator Dokładnie 6,378,137 metrów (WGS-84)
Obwód równika = 40,075,017 metrów (2πr)
Poziom powiększenia 24 wykorzystuje 2 do 32 pikseli mocy (4 294 967 296) pikseli na obwodzie.
Obwód równikowy / 2 32 = .009330692 metrów na piksel
Jednostka na szerokości geograficznej = (cosinus szerokości geograficznej) X (jednostka na równiku)
Poziom powiększenia podwaja każdy przyrost.
1 stopa (międzynarodowa) = 0,3048 metra
Edytować
Cóż, to naprawdę nie jest uzasadnione pytanie na początek. Współczynniki skali odnoszą się do wydrukowanych dokumentów, a nie ekranów komputerowych. Aby obrazy te były używane z dowolną dokładnością, musisz znać wymiary każdego piksela, a następnie skalować obraz zgodnie z tym, na co go nakładasz.
15-20 lat temu ktoś wziął WGS-84 jako dane podstawowe. (uwaga w poprzednim poście ktoś użył wartości 40.075.160 Widziałem to w Wikipedii w kilku miejscach i jest to niepoprawne. Prawidłowa wartość to 40,075,017
Następnie wzięli to i podzielili przez pełną 32-bitową liczbę całkowitą. Jest to logiczny wybór, ponieważ zapewnia globalną dokładność do około jednego centymetra, co wystarcza na zdjęcia lotnicze. 32-bitowe liczby całkowite są również wydajne do przechowywania i przetwarzania.
Dlaczego wybrano poziom 24, nie wiem jednak, ponieważ ktoś tutaj tutaj opracował 0, prowadzi cię do jednego 256-pikselowego kafelka dla Ziemi.
Teraz na przykład, jak korzystać z powyższych danych. Powiedzmy, że mam obraz na poziomie powiększenia 20 (tak powiększonym, jak to obecnie pozwalają) Zrób 0,009330692 (Powiększ 24 na równiku) dwukrotnie dla powiększenia 23, ponownie dla powiększenia 22, ponownie dla powiększenia 21 i ostatni raz dla powiększenia 20 Powinieneś teraz mieć 0.149231071.
Powiedzmy teraz, że nasz obraz znajduje się na 45. szerokości geograficznej. Weź Cosinus tego (0,707106781) i pomnóż go przez 0,149231071, a da ci 0,0556564729 metrów. Jest to długość i wysokość jednego piksela od obrazu na 45 szerokości geograficznej przy poziomie powiększenia 20. Jeśli wykonasz zrzut ekranu o rozmiarze 1000 x 1000 pikseli tego obszaru, jego wymiary wynoszą 105,56 metra kwadratowego. Jeśli chcesz, stopy dzielą to 0,3048
Jeśli chodzi o źródła, około 5 lat temu byłem inżynierem inżynierii odwrotnej na podstawie różnych informacji i dokumentacji, które znalazłem w sieci, w tym stron wsparcia map Google i MS.
Wykorzystałem tę setkę czasu i nałożyłem ją na dane z badań terenowych i zawsze były one poprawne. Porównaj to z dowolną tabelą zamieszczoną tutaj, a liczby będą pasować.
źródło
Właśnie wykonałem kilka obliczeń i uzyskałem następujące wyniki:
Mapy Google pokazują linijkę 1 km (u dołu po lewej stronie mapy) o długości 90 pikseli na poziomie powiększenia 13. Co oznacza:
Zakładając, że rozdzielczość ekranu wynosi 96 dpi lub 36 dpcm, na poziomie powiększenia 13 mamy 0,4 km (od 36/90) na 1 cm, co daje skalę mapy 1: 40 000 dla ekranu 96dpi.
W przypadku różnych operacji na ekranie najlepiej jest przyjąć 90 pikseli jako podstawę, ponieważ wszystkie liczby będą okrągłe na wszystkich poziomach powiększenia, tj.
i tak dalej.
Zauważ, że jest to przybliżenie, które powinno działać mniej więcej dobrze na mniejszych skalach niż na dużych.
(A Google lubi okrągłe liczby na końcu ...)
źródło
Na podstawie wszystkich dostarczonych informacji zbudowałem funkcję, która daje najlepsze z zastosowane do mapy, gdy chcesz mieć poziomą linię reprezentującą N% wyświetlanej mapy.
Wyświetlana mapa charakteryzuje się własną szerokością pikseli.
źródło
Nie mogę jeszcze dodać komentarza, ale jest to możliwe źródło powyższej odpowiedzi Pete'a: https://developers.google.com/maps/documentation/javascript/maptypes#MapCoordinates
źródło
Obliczyłem skale dla czterech poziomów powiększenia:
Poziom powiększenia | Skala 20 1: 500 19 1: 1000 18 1: 2000 17 1: 4000
Wydaje się, że skala jest podwojona wraz ze wzrostem stopnia powiększenia o jeden krok. Mam więc nadzieję, że skala dla poziomu powiększenia 16 wyniesie 1: 8000 i tak dalej.
źródło
Cześć. Myślę, że obliczyłem, że 1 piksel = 11,627 km w linii prostej; nie biorąc pod uwagę promienia ziemi. Oto link wideo wyjaśniający, jak: https://www.youtube.com/watch?v=Y3cvTeiMJqE&feature=youtu.be . Mam nadzieję, że to oczyści twój umysł.
źródło