Jaka jest różnica między GeoJSON i TopoJSON i kiedy powinienem używać jednego nad drugim?
Opis TopoJSON na GitHub implikuje pliki TopoJSON są 80% mniejsze. Dlaczego więc po prostu nie używać TopoJSON przez cały czas?
Jaka jest różnica między GeoJSON i TopoJSON i kiedy powinienem używać jednego nad drugim?
Opis TopoJSON na GitHub implikuje pliki TopoJSON są 80% mniejsze. Dlaczego więc po prostu nie używać TopoJSON przez cały czas?
Odpowiedzi:
Jeśli zależy Ci na rozmiarze pliku lub topologii, użyj TopoJSON. Jeśli nie dbasz o to, użyj GeoJSON dla uproszczenia.
Podstawową zaletą TopoJSON jest rozmiar. Eliminując nadmiarowość i stosując bardziej wydajne kodowanie współrzędnych liczb całkowitych o stałej precyzji, pliki TopoJSON są często o rząd wielkości mniejsze niż pliki GeoJSON. Dodatkową zaletą plików TopoJSON jest to, że kodowanie topologii ma przydatne aplikacje, takie jak uproszczenie z zachowaniem topologii (podobne do MapShaper ) i automatyczne generowanie siatki (jak w przypadku granic stanu w tym przykładzie choropleth ).
Te zalety mają swoją cenę: bardziej złożony format plików. Na przykład w języku JavaScript typowo używasz biblioteki klienta TopoJSON do konwersji TopoJSON do GeoJSON w celu użycia ze standardowymi narzędziami, takimi jak d3.geoPath . (W Pythonie można użyć topojson.py ). Ponadto format liczb całkowitych TopoJSON wymaga kwantyzacji współrzędnych, co oznacza, że może wprowadzić błąd zaokrąglania, jeśli nie będziesz ostrożny. (Zobacz dokumentację topojson -q
).
W przypadku manipulacji geometriami po stronie serwera, które nie wymagają topologii, GeoJSON jest prawdopodobnie prostszym wyborem. W przeciwnym razie, jeśli potrzebujesz topologii lub chcesz wysłać geometrię do klienta, użyj TopoJSON.
TopoJSON jest idealny dla uporządkowanych funkcji, które „łączą się” ze sobą, na przykład regiony administracyjne, ale nie pomagają w przypadku bardziej niechlujnych lub organicznych danych. Jeśli Twoje dane to po prostu punkty, TopoJSON w ogóle nie pomoże.
To zależy od wielu czynników. Wśród nich są:
1) Charakter (model danych) funkcji lub funkcji, które chcesz przedstawić 2) Wszelkie atrybuty, które chcesz powiązać z tymi funkcjami 3) Jak chcesz, aby te funkcje zachowywały się na stronie (statyczne a dynamiczny)
Jednak odpowiedź na to pytanie jest abstrakcyjna. Jeśli chodzi o niektóre szczegóły, jeśli masz ciągłe pokrycie wieloboków lub inną sytuację, w której elementy dzielą granice, model topojsona pozwala wykorzystać nadmiarowość i uwzględnić to w modelu.
Przeczytaj dokumentację, przeanalizuj przykłady (np. Bl.ocks.org), a następnie pobierz trochę danych i przedstaw je zarówno w geojson, jak i topojson i utwórz własne wizualizacje.