Współrzędne geograficzne

Wybierz platformę: Android iOS JavaScript

Maps SDK na Androida używa tych układów współrzędnych:

  • szerokości i długości geograficznej, które odnoszą się do punktu na świat w niepowtarzalny sposób. (Google korzysta z Świat geodetyczny Standard WGS84).
  • Współrzędne świata, które jednoznacznie odnoszą się do punktu na mapie.
  • Współrzędne piksela, które odnoszą się do konkretnego piksela na mapie odpowiedni poziom powiększenia.
  • Współrzędne kafelka, które odnoszą się do konkretnego kafelka na mapie odpowiedni poziom powiększenia.

Współrzędne świata

Za każdym razem, gdy interfejs API musi przetłumaczyć lokalizację na świecie na lokalizację na mapie, przekształca wartości szerokości i długości geograficznej cały świat. Interfejs API wykorzystuje Mercator odwzorowanie, by wykonać to tłumaczenie.

Dla wygody obliczania współrzędnych w pikselach (patrz poniżej) zakładamy, że mapa w powiększeniu 0 to pojedynczy kafelek o rozmiarze kafelka podstawowego. Następnie określamy współrzędne świata względem współrzędnych pikseli przy powiększeniu poziomu 0, używając odwzorowania do konwertowania szerokości i długości geograficznej na pozycji pikseli na tym podstawowym kafelku. Ta współrzędna świata jest pływająca wartość punktowa mierzona od początku odwzorowania mapy do konkretnej lokalizacji. Pamiętaj, że jest to wartość zmiennoprzecinkowa, może być znacznie dokładniejsza niż bieżąca rozdzielczość obrazu mapy które są wyświetlane. Współrzędna światowa jest niezależna od bieżącego poziomu powiększenia, Innymi słowy.

Współrzędne świata w Mapach Google są mierzone na podstawie współrzędnych Merkatora. początek odwzorowania (północno-zachodni róg mapy, 180 stopni długość i około 85 stopni szerokości geograficznej) i wzrost w x w kierunku wschodu (w prawo) i zwiększa się kierunek y w kierunku południowym (w dół). Ponieważ podstawowy kafelek Map Google Mercator ma wymiary 256 x 256 pikseli. przestrzeń współrzędna świata to {0-256}, {0-256}.

Zauważ, że odwzorowanie Merkatora ma wartość skończoną szerokości i długości, ale nieskończonej wysokości. Przecinamy podstawowe zdjęcia mapy z użyciem odwzorowania Merkatora: +/- 85 stopni, aby wynikowy kształt mapy łatwiejszą logikę wyboru kafelków. Pamiętaj, że rzutowanie może dawać współrzędne świata poza użytecznej przestrzeni mapy podstawowej np. w pobliżu biegunów.

Współrzędne piksela

Współrzędne piksela odnoszą się do konkretnego piksela na mapie, określonego poziomu powiększenia, a współrzędne świata odzwierciedlają absolutne położenie dla danej prognozy. Współrzędne pikseli są obliczane według tego wzoru wzór:

pixelCoordinate = worldCoordinate * 2zoomLevel

W równaniu powyżej widać, że każdy rosnący poziom powiększenia jest 2 razy większy w wymiarach x i y wskazówek dojazdu. Dlatego każdy większy poziom powiększenia daje po 4 razy więcej niż poprzedni poziom. Na przykład: przy powiększeniu 1. mapa składa się z 4 kafelków o wymiarach 256 x 256 pikseli, od formatu 512 x 512. Przy poziomie powiększenia 19 każdy piksel: x i y na mapie można przywołać za pomocą wartości między 0 i 256 * 219.

Ponieważ współrzędne świata są ustalane na podstawie rozmiaru kafelka mapy, Część całkowita współrzędnej piksela ma wpływ na identyfikację dokładnego piksela przy bieżącym powiększeniu. Pamiętaj, że przy poziomie powiększenia 0 współrzędne w pikselach są równe współrzędnych świata.

Mamy obecnie sposób na precyzyjne oznaczenie każdej lokalizacji na mapie, przy każdym powiększeniu. Pakiet Maps SDK na Androida tworzy widoczny obszar ze środkami poziomu powiększenia mapy (w postaci LatLng) oraz rozmiaru elementu DOM, przekłada tę ramkę ograniczającą na współrzędne pikselowe. Następnie interfejs API określa, logicznie wszystkie fragmenty mapy, które znajdują się w określonych granicach pikseli. Każda z tych wartości: odwołanie do tych fragmentów mapy: współrzędne mapy, które znacznie ułatwiają wyświetlanie mapy. zdjęcia.

Współrzędne kafelka

Interfejs API nie może wczytać wszystkich zdjęć map jednocześnie dla wyższych poziomów powiększenia. Zamiast tego interfejs API dzieli zdjęcia na każdym poziomie powiększenia. w zestaw kafelków, które są logicznie ułożone w kolejności Twojej aplikacji. Gdy mapa przewinie się do nowej lub nowej lokalizacji poziom powiększenia, interfejs API określa wymagane kafelki za pomocą współrzędnych pikseli, i przekształca te wartości w zbiór kafelków do pobrania. Te współrzędne są przypisywane za pomocą schemat, który pozwala logicznie łatwo ustalić, który kafelek zawiera zdjęcia wybranego punktu.

Kafelki w Mapach Google są numerowane z tego samego punktu początkowego w pikselach. Podczas implementacji przez Google odwzorowywania Merkatora kafelek początkowy jest zawsze w północno-zachodnim rogu mapy, przy czym wartości x rosną od zachodu do wschód i y wartości rosną z północy na południe. Kafelki są indeksowane za pomocą współrzędnych x,y z tego punktu początkowego. Dla: na przykład przy powiększeniu drugim, gdy Ziemia jest podzielona na 16 kafelków, do każdego kafelka może się odwoływać unikalna para x,y:

Mapa świata podzielona na 4 wiersze i 4 kolumny z kafelkami.

Pamiętaj, że dzieląc współrzędne pikseli przez rozmiar kafelka (256) i analizując całkowite części wyniku, otrzymujesz jako iloczyn uboczny współrzędną kafelka przy bieżącym poziomie powiększenia.

Przykład

Poniższy przykład przedstawia współrzędne geograficzne Chicago w stanie Illinois: wartości szerokości i długości geograficznej, współrzędnych świata, współrzędnych pikseli oraz kafelków . Za pomocą elementu sterującego powiększeniem możesz wyświetlać wartości współrzędnych w różnych poziomów powiększenia.

Aby zobaczyć, jak zostały obliczone współrzędne, wyświetl kod.