Współrzędne geograficzne

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Wybierz platformę: Android iOS JavaScript

Interfejs Maps JavaScript API korzysta z tych systemów współrzędnych:

  • Wartości szerokości i długości geograficznej odwołujące się do punktu na świecie. (Google używa standardu World Geodetic System WGS84).
  • Współrzędne świata, które jednoznacznie odwołują się do punktu na mapie.
  • Współrzędne pikseli, które odwołują się do określonego piksela na mapie przy określonym powiększeniu.
  • Współrzędne płytek, które odwołują się do konkretnego kafelka na mapie przy określonym powiększeniu.

Współrzędne świata

Za każdym razem, gdy interfejs API musi przetłumaczyć lokalizację na świecie, aby znaleźć lokalizację na mapie, najpierw trzeba przetłumaczyć wartości szerokości i długości geograficznej we współrzędnym światowym. Interfejs API używa do tego prognozy.

Dla ułatwienia podczas obliczania współrzędnych piksela (patrz poniżej) zakładamy, że mapa przy powiększeniu na poziomie 0 to pojedynczy kafelek rozmiaru kafelka podstawowego. Następnie definiujemy współrzędne geograficzne względem współrzędnych piksela na poziomie 0, korzystając z projekcji, aby przekształcić szerokość i długość geograficzną w pozycję piksela na tym kafelku podstawowym. Ta współrzędna świata to wartość zmiennoprzecinkowa mierzona od punktu początkowego mapy do określonej lokalizacji. Ponieważ ta wartość jest wartością zmiennoprzecinkową, może być znacznie dokładniejsza niż bieżąca rozdzielczość obrazu mapy. Współrzędny światowe są niezależne od bieżącego poziomu powiększenia.

Współrzędne świata w Mapach Google są mierzone od punktu początkowego Mercatora (północno-zachodni róg mapy na 180 stopniach i około 85 stopni po szerokości geograficznej) i wzrasta kierunek x w kierunku wschodnim (w prawo) i zwiększa się w kierunku y w kierunku południa (w dół). Podstawowy kafelek Mercator w Mapach Google ma rozmiar 256 x 256 pikseli, więc użyteczna współrzędna świata wynosi {0-256}, {0-256}.

Pamiętaj, że odwzorowanie Mercator ma skończone szerokość, ale nieskończoną wysokość. Odcinamy podstawowe obrazy map przy użyciu odwzorowania Mercator w około +/-85 stopni, aby utworzyć kwadrat kształtu mapy, który ułatwia wybór kafelka. Pamiętaj, że odwzorowanie może generować współrzędne świata poza mapą podstawową, tak jak na przykład znajdują się na przykład bieguny.

Współrzędne piksela

Współrzędne piksela odnoszą się do konkretnego piksela na mapie przy określonym powiększeniu, a współrzędne świata odzwierciedlają bezwzględne lokalizacje na danym odcinku. Współrzędne piksela oblicza się według tego wzoru:

pixelCoordinate = worldCoordinate * 2zoomLevel

Biorąc pod uwagę powyższe równanie, pamiętaj, że każdy rosnący poziom powiększenia jest dwukrotnie większy w kierunkach x i y. Dlatego każdy wyższy poziom powiększenia prowadzi do rozdzielczości 4-krotnie wyższej od poprzedniego. Na przykład na poziomie powiększenia 1 mapa składa się z 4 kafelków o wymiarach 256 x 256 pikseli, przez co obszar piksela wynosi 512 x 512. Na poziomie powiększenia 19 każdy piksel x i y na mapie może odwoływać się do wartości od 0 do 256 * 219.

Opieramy się na współrzędnych świata na mapie, która jest widoczna w układzie kafelkowym piksela, dlatego całkowita liczba pikseli jest identyfikowana w bieżącym poziomie powiększenia. W przypadku powiększenia na poziomie 0 współrzędne pikseli są takie same jak współrzędne świata.

Teraz możemy precyzyjnie wskazać każdą lokalizację na mapie przy każdym powiększeniu. Interfejs Maps JavaScript API tworzy wizualizację na podstawie środka powiększenia poziomu mapy (LatLng) i rozmiaru elementu DOM, a następnie przekształca to ograniczenie do współrzędnych piksela. Potem interfejs logiczny określa logicznie wszystkie fragmenty mapy znajdujące się w granicach danego piksela. Do każdego z tych kafelków odwołuje się funkcja współrzędnych kart, co bardzo ułatwia wyświetlanie zdjęć w mapie.

Współrzędne płytki

Interfejs API nie może wczytać wszystkich zdjęć mapy jednocześnie dla wyższych poziomów powiększenia. Zamiast tego interfejs API dzieli obrazy na każdym poziomie powiększenia na zestaw kafelków mapy, które są logicznie ułożone w kolejności zrozumiałej dla aplikacji. Gdy mapa przewija się w nowe miejsce lub na nowy poziom powiększenia, interfejs API określa, które kafelki są potrzebne, używając współrzędnych w pikselach, a następnie przekształca te wartości w zestaw fragmentów. Współrzędne tych kafelków są przypisywane za pomocą schematu, który ułatwia logiczne określenie, który kafelek zawiera obrazy z danego punktu.

Kafelki w Mapach Google pochodzą z tego samego źródła co piksele. W wyniku wdrożenia projekcji Mercator punkt początkowy znajduje się zawsze w północno-zachodnim rogu mapy. Wartości x rosną w kierunku od zachodu do wschodu, a wartości y rośnie z północy na południe. Karty są indeksowane przy użyciu współrzędnych x,y z tego źródła. Na przykład na poziomie powiększenia 2, gdy Ziemia jest podzielona na 16 kafelków, do każdego kafelka mogą się odwoływać unikalne pary x,y:

Pamiętaj, że dzieląc współrzędne piksela przez rozmiar kafelka (256) i biorąc pod uwagę części całkowite wyniku, tworzysz układ ze wszystkimi wartościami ułożonych obok siebie na bieżącym poziomie powiększenia.

Przykład

Poniższy przykład przedstawia współrzędne Chicago, IL: wartości szerokości i długości geograficznej, współrzędne globalne, współrzędne pikselowe i kafelki. Użyj suwaka powiększenia, aby zobaczyć wartości współrzędnych na różnych poziomach powiększenia.

Aby dowiedzieć się, jak są obliczane współrzędne, wyświetl kod.