Nasza aplikacja internetowa zawiera proste funkcje mapowania (obecnie tylko markery i nakładki KML na osadzonej mapie Google). To działa całkiem dobrze; jedynym prawdziwym ograniczeniem, jakie napotykamy, są nakładki KML, które wykraczają poza ograniczenia wielkości i złożoności Google dla KML .
Zastanawiamy się nad postawieniem własnego serwera (np. GeoServer lub ArcGIS Server); ale wydaje się to ogromnym krokiem, aby podać (na przykład) 15 MB KML, gdy limit Google wynosi 10 MB.
Potrzebuję testu poprawności: czy istnieje jakiś pośredni związek między bezpłatnym i łatwym interfejsem API Google dla nakładek KML a konfiguracją własnego serwera kafelków?
google-maps
kml
Herb Caudill
źródło
źródło
Odpowiedzi:
Ponieważ już zainwestowałeś w rozwój Map Google, zdecydowanie sugeruję przeniesienie wszystkich danych do Google Fusion Tables, które można następnie przeanalizować na mapie w podobny sposób jak KML z niewiarygodną wydajnością (patrz aplikacja WNYC Fusion Tables ). Rozważ to uaktualnienie do KML bez konieczności drastycznej modyfikacji interfejsu.
źródło
Możesz podzielić swój KML na wiele KML z nadrzędnym KML odnoszącym się do mniejszych kml. Przynajmniej obniży to rozmiary plików do przyzwoitego poziomu i pozwoli odwoływać się do znacznie większych zestawów danych jako plików KML.
Szczerze mówiąc, KML jest naprawdę dobry tylko dla małych zestawów danych z kilkoma funkcjami i powiązanymi atrybutami. Nie zbliżyłbym się do niego jako źródła danych pliku. Jeśli patrzysz na powiększanie się tych plików, spojrzałbym na inny typ danych lub zdecydowanie skierowałem się w stronę GeoServer / MapServer dla rozproszonych zestawów danych.
źródło
Jeśli nie zainwestowałeś zbyt wiele czasu w interfejs API Map Google, możesz przełączyć się na OpenLayers, który ma parser KML po stronie klienta, który może czytać własne pliki KML - patrz przykład poniżej:
http://openlayers.org/dev/examples/kml-layer.html
Jednak w przypadku pliku 15 MB prawdopodobnie zatrzyma to przeglądarkę. Prawdopodobnie jest również dość powolny przez serwery Google, gdy zbliżasz się do limitu rozmiaru pliku.
Czy naprawdę potrzebujesz poziomu 15 MB szczegółów, czy możesz uprościć KML bez utraty zbyt dużej ilości informacji?
Czy potrzebujesz dostępu do wektora / geometrii po stronie klienta? Czy te dane mogą być podawane jako obrazy?
Jeśli żadne z nich nie jest możliwe, będziesz musiał spojrzeć na oprogramowanie obsługujące mapę. Wraz z GeoServer z ArcGIS Server możesz rozważyć MapServer do obsługi KML lub jako WFS. Zaletą korzystania z serwera map jest to, że żądania zwrócą tylko dane z mapy - zmniejszając ruch w sieci i skracając czas ładowania.
źródło
Jeśli używasz wersji 3, możesz usunąć wszystkie informacje o atrybutach oprócz unikalnego identyfikatora i zażądać tych informacji za pośrednictwem wywołań ajax do usługi sieci Web za każdym razem, gdy użytkownik kliknie funkcję. Jeśli masz ponad 10 MB punktów, prawdopodobnie dobrym pomysłem jest tworzenie klastrów zamiast wyświetlania wszystkich tych punktów jednocześnie. Możesz także rozdzielić nakładki naziemne na osobne pliki KML.
źródło
Czy próbowałeś już Google Fusion Tables. http://www.google.com/fusiontables/public/tour/index.html
Możesz załadować do 100 MB danych za darmo.
źródło
MapLarge ma ciekawe rozwiązanie - mogą replikować dane na swoich serwerach, a następnie wykonywać ciężkie prace związane z generowaniem kafelków w locie za pomocą własnego oprogramowania. Oferują interfejsy API JavaScript, które mogą następnie nakładać je na mapy podstawowe z Map Google, OpenLayers itp.
Sprawdź niektóre z ich przykładów - prędkość robi wrażenie:
To nie jest darmowe, ale może być dobrą opcją dla kogoś, kto nie chce kłopotów i kosztów związanych z tworzeniem osobnego serwera, aby wygenerować te warstwy.
źródło