W jakich układach współrzędnych okrągłe koła wydają się okrągłe?

10

Od jakiegoś czasu rozwijam się w Mapach Google i przechodzę do OpenLayers, ale utknąłem w jednym punkcie: rysuję wektory, które są w większości okrągłe, ale zawierają również niestandardową geometrię, więc nie mogę użyć createRegularPolygon. Tworzę tablicę punktów i wysyłam ją do obiektu OpenLayers.Layer.Vector. Działa to świetnie, ale powstałe „koła” są okrągłe tylko w pobliżu równika, a nie na wyższych szerokościach geograficznych. Są one zgniecione mniej więcej tak samo, jak mapa bazowa na wyższych szerokościach geograficznych, co wydaje się mieć sens. Jeśli użyję Google jako warstwy podstawowej, to będą one mieć prawidłowy kształt na wszystkich szerokościach geograficznych, ale robię mobilne rozwiązanie offline, więc tak się nie stanie.

Czego używać do warstwy bazowej (lub jakie parametry ustawić), aby moja geometria pozostała okrągła na wszystkich szerokościach geograficznych bez korzystania z Google lub map online?

kschaos
źródło

Odpowiedzi:

12

Wydaje mi się, że twoje kręgi wyglądają mniej więcej tak:

wprowadź opis zdjęcia tutaj

(Źródło: blog centrum mapowania Esri )

Będziesz chciał użyć Web Mercator EPSG: 900913 zamiast WGS84 EPSG: 4326 dla idealnych kół

Więcej na ten temat i przykładowy wygląd okręgów w Mercator: Wskaźnik Tissot pomaga zilustrować zniekształcenie mapy

Aby Openlayery korzystały z Mercatora, musisz ustawić opcję sphericalMercator w warstwie podstawowej.

sphericalMercator: true,
podmrok
źródło
Dzięki! to była dokładnie taka informacja, jakiej potrzebowałem. Myślałem, że pracuję z warstwą, która była w EPSG: 900913, ale tak nie było. Musiałem również upewnić się, że wszystkie transformacje przechodzą z EPSG: 4326 do EPSG: 900913 i działa idealnie. Teraz muszę tylko dowiedzieć się, jak nie wyświetlać ikon uszkodzonego obrazu, gdy próbuje załadować kafelki mapy w trybie offline.
kschaos
14

Nie istnieje mapa całej ziemi, na której wszystkie (prawdziwe, sferyczne) okręgi pozostają naprawdę okrągłe. Istnieją jednak sposoby mapowania Ziemi, w których prawie wszystkie wystarczająco małe koła są okrągłe. Opierają się one na projekcjach konformalnych . Z definicji zmiany, jakie rzut konformalny wprowadza na odległości w małych obszarach, są dwojakiego rodzaju: równomierne rozciąganie i obrót. Oczywiście te zmiany nie zmniejszają krągłości kół.

Sierpień Epicycloidal

Mapa ziemi z sierpniową projekcją epicykloidalną . Większość kręgów na tej mapie będzie naprawdę okrągła.

Powszechnie stosowanymi projekcjami konformalnymiMercator (projekcja cylindryczna), Stereographic (projekcja azymutalna) i Conformal Conic Lambert (projekcja stożkowa, oczywiście). Obejmują one trzy główne rodziny projekcji, dając ci elastyczność wyboru konkretnego „wyglądu” do siatki południków i linii szerokości geograficznej. Dodatkowe opcje, które mogą być dostępne w niektórych GISes, obejmują Miller Oblated Stereographic , Littrow , Bipolar Oblique Conic CONFORMAL , Lagrange , Eisenlohr , Sierpień epicykloidalne , Guyou , Peirce kwinkunksa, GS50 , różne projekcje Adamsa i Lee . (Źródło: Snyder & Voxland, Album of Map Projections. USGS Professional Paper 1453.) Te dwa ostatnie wskazują na bogactwo możliwych projekcji konformalnych, które można utworzyć, i pokazują, w jaki sposób projekcje konformalne nie są tak naprawdę „zachowujące kształt”: projekcje Adamsa mapowane zgodnie półkula w kwadrat, a projekcja Lee umieszcza ją w trójkącie. W rzeczywistości Twierdzenie Riemanna o odwzorowaniu złożonej analizy pokazuje, że można w sposób zgodny mapować półkulę w dowolnym wielokącie!

OpenLayers korzysta z biblioteki projekcji Proj4js . Kod źródłowy projekcji jest rozpowszechniany w folderze / proj4js / lib / projCode /. Prognozy zgodności zawarte w najnowszej wersji (1.0.2) to Mercator , dwa poprzeczne Mercatory , dwa ukośne Mercatory („Hotine” i „Swiss Oblique”), Lambert Conformal Conic i Stereographic .

O ile Twoja aplikacja nie jest zaprojektowana do pracy na całym świecie, zapoznaj się z tymi opcjami i przeanalizuj je, aby określić, które z nich będą najlepsze dla Twojego regionu zainteresowania . Wszystkie te można łatwo zaktualizować i przeskalować, aby zminimalizować całkowite zniekształcenie (nie tylko kształtów, ale także obszarów i odległości) w określonym obszarze. Domyślnym rozwiązaniem na całym świecie jest wariant Merkatora, spopularyzowany przez mapy Google.

Whuber
źródło
Więcej na temat tej odpowiedzi można znaleźć tutaj: pasda.psu.edu/help/projection.asp
DPSSpatial
@mapBaker Dziękujemy za zaoferowanie tego linku. Niestety charakterystyka rzutu konformalnego jest nieprawidłowa: „Rzut konformny zachowuje kształty takie jak prostokąty”. Dotyczy to tylko kształtów nieskończenie małych, a nie kształtów o skończonym rozmiarze.
whuber
znasz kogoś z PSU, który mógłby pomóc w dostosowaniu tego dokumentu?
DPSSpatial
@mapBaker Niestety nie; Nie mam tam żadnych aktualnych kontaktów. Nie jestem nawet pewien, czy chcieliby to zmienić. Pomiędzy byciem poprawnym a pedantycznym istnieje cienka granica. Uważam, że mogli docenić prostotę ekspozycji i - dla ich szczególnego odbiorcy - nie chcieli rozróżniać między zachowaniem właściwości geometrycznych w dużych skalach a małymi skalami. Cenię też prostotę ekspozycji, ale w tej odpowiedzi starałem się znaleźć dokładniejszy kompromis między prostotą a poprawnością, podkreślając wystarczająco małe kółka.
whuber
2

Oczywiście będziesz mieć problem, dopóki użyjesz mapy bazowej w projekcji EPSG: 4326. Potrzebna jest projekcja sferyczna Mercatora, którą, jak zauważyłeś, są Mapy Google i inni komercyjni dostawcy map. Śmiało i przeczytaj to, aby lepiej zrozumieć ten problem.

Dla Ciebie rozwiązanie mobilne offline OpenStreetMap byłoby prawdopodobnie dobrym rozwiązaniem.

igorti
źródło