Bezpłatna usługa map dla prywatnych aplikacji internetowych


12

tło

Chcę wyświetlić mapę (tylko do użytku wewnętrznego) na stronie internetowej. Aplikacja musi mieć możliwość dodawania niestandardowych warstw (bez wysyłania danych do hosta usługi mapowania):

  • Strefy miejskie (określone przez pliki kształtów)
  • Strefy niestandardowe (zdefiniowane przez wielokąty, ewentualnie w kategoriach stref miejskich)
  • Lokalizacje witryn (zdefiniowane przez długość / długość)
  • Dodatkowe dane miasta (zdefiniowane przez pliki kształtów)

Ponieważ jest to przedsięwzięcie prywatne, eliminuje wiele usług map, w tym: Google Maps, Bing, Yahoo! Mapy, MapQuest i inne płatne usługi.

Aktualizacja nr 1

Być może MapQuest jest możliwe .

Aktualizacja nr 2

Wymagania, o których zapomniałem wspomnieć:

  1. Istnieją dodatkowe dane (miasta, miasteczka, wioski), które nie są częścią OpenStreetMap. Miasta te należy uwzględnić bez podawania danych dostawcy mapy.
  2. Istnieją różne warstwy (takie jak lokalizacje pracowników), które również muszą być wyświetlane, bez informowania dostawcy mapy, gdzie znaleźć dane (tj. Dane będą za zaporą ogniową).

Obecny rozwój

Obecnie nie udało mi się znaleźć serwera spełniającego moje wymagania, dlatego postępowałem zgodnie z instrukcjami na różnych stronach internetowych, aby zainstalować serwer sieciowy Mapnik:

W tym momencie mam różne dane:

  • Dane miasta i gminy (pliki kształtów ładowane do PostGIS)
  • Dane Ziemi Naturalnej (pliki kształtów; nie załadowano)
  • Arkusze stylów Mapnik (różne pliki; nie załadowano)

GeoServer

Próbowałem zainstalować GeoServer (przed Mapnikiem), ale okazało się, że brakuje dokumentacji, internetowe narzędzie administracyjne jest kłopotliwe w konfiguracji, a czas reakcji na maszynie 2 GHz jest boleśnie powolny (10 sekund, aby renderować kafelek z jednowarstwowa: drogi) i domyślnie nijakie. (Wiem, że mogę ożywić arkusze stylów, aby ożywić prezentację, ale to oznacza, że ​​muszę znaleźć [lub stworzyć !] Odpowiednie pliki, zainstalować je, przetestować i tak dalej.)

Wymagania

Wymagania techniczne obejmują:

  • Miasta, drogi, zbiorniki wodne (jeziora, rzeki, oceany)
  • Granice polityczne (prowincje, kraje)
  • Wysoka jakość (wizualnie podobny do Google Maps, MapQuest itp.)
  • Wysoka dyspozycyjność
  • Projekcja 900913 (podobna do Google Maps)
  • Płytki reagujące (poniżej 0,1 sekundy na płytkę)
  • Doskonały zasięg danych ulicznych dla Kanady
  • Przydatne w przypadku śliskiej mapy (kompatybilnej z OpenLayers)
  • 10 000 żądań płytek dziennie
  • Darmowy do użytku komercyjnego (lub prywatnego), czy mniej niż 2000 USD rocznie?

Dobry przykład

Oto doskonały przykład (OpenLayers) tego, co chcę osiągnąć:

Złe przykłady

Przykład tego, czego nie chcę osiągnąć:

Przykład niekompletnych danych:

powiązane linki

Pytanie

Jakie serwery WMS, WMTS lub WFS oferują wymaganą funkcjonalność?

Odpowiedzi:


11

Nie jestem pewien, dlaczego wykluczasz usługi takie jak Mapy Google, zwłaszcza, że ​​spodziewany ruch nie jest tak duży (Google zaczyna pobierać opłaty po 25 000 wyświetleń map (liczba wyświetleń mapy będzie znacznie niższa niż 10 000): https://developers.google. com / maps / faq # use_pricing ). W zasadzie potrzebujesz dwóch rzeczy:

  1. Ktoś, kto dostarczy ci śliską mapę internetową. Mogą to być Google Maps, Bing, MapQuest, Cloudmade itp. Możesz też uruchomić własny serwer kafelków i korzystać z danych OpenStreetMap.
  2. Renderowanie własnych danych wektorowych po stronie klienta (przy użyciu javascript) na górze mapy sieci. Istnieje kilka bibliotek open source, które mogą to zrobić (OpenLayers, Leaflet, Polymaps ...).

Kilka wskazówek do dalszego zbadania:


8
Warunki korzystania z Google Maps zabraniają wyświetlania map na prywatnych serwerach (tzn. Serwer musi być otwarty dla ogółu społeczeństwa). developers.google.com/maps/terms ... „Implementacja interfejsu API Map nie może działać tylko w sieci wewnętrznej”. To wyklucza to.
Dave Jarvis

OK, to ma sens. W takim przypadku OSM jest właściwą drogą.
Igor Brejc


3

Openlayers z OpenStreetmap wydaje się być najlepszą darmową opcją, a następnie dodajesz swoje warstwy za pomocą WMS (jak Mapserver lub Geoserver). Możesz także korzystać z Google Maps z licencją.

Mam na to duże doświadczenie, odkąd opracowałem wiele stron, niektóre od zera z niestandardowymi kafelkami.

Nie współpracowałem z geoserver, ale z Mapserver. Nie można oczekiwać, że serwer wyświetli miliony szczegółów funkcji w czasie rzeczywistym. Powiedziałbym, że ich wydajność zawsze musi być zwiększona poprzez uproszczenie danych do poziomów szczegółowości (zgodnie ze skalą lub powiększeniem) i może wypalenie danych podstawowych na kafelki.

Teraz pracuję nad mapą Mobnetics

Korzysta z Openlayers, kafelków OSM, postgreSQL i Java. Piękno polega na tym, że dostosowuje się do dowolnych danych GIS (przy użyciu metadanych), a następnie pozwala użytkownikom wyszukiwać dane. Jest w ciągłym rozwoju i w tym czasie ma tylko dodatkowe dane dla Portugalii (jako przypadek testowy).

Następną rzeczą, którą chcę zrobić, jest zaoferowanie klientom hostującym na danych gis, że mogą oni skonfigurować i zaktualizować zdalnie, aby klienci mogli pracować w witrynie jako własni.
Byłoby miło mieć klienta, ponieważ moja firma rozwija witrynę.

W przeciwnym razie mogę również wykonać niestandardową instalację tej witryny na serwerze i zarządzać nią zdalnie. Zrobiliśmy to dla niektórych klientów.

Z poważaniem,

Joaquim Muchaxo


Może to być trochę długa szansa, ale czy wiesz, gdzie idę, aby dowiedzieć się więcej o konfiguracji?
QGISUser

1

Myślę, że słowo „open source” jest używane w tym wątku dość swobodnie;)

Dwie dodatkowe opcje:


1
Żadna z tych opcji nie jest dostępna, ponieważ chodziło o bezpłatne usługi prywatne
Ryan Garnett

1

Możesz oczywiście skorzystać z GIS typu płatnego. Pracuję w radzie i używamy Exponare. Exponare jest łatwe i działa dobrze, ale będzie Cię to kosztować.

ArcMap jest najbardziej fantazyjny, a jego oprogramowanie Dekho robi to, co chcesz.

JEŚLI chcesz rzucić swój własny, sprawdź pełny stos w obsługiwanym modelu na http://opengeo.org/ .

Rozumiem, że robienie tego samemu jest następujące:

  1. Uzyskaj swoje dane w przestrzennej bazie danych, tj. PostGIS
  2. Wybierz serwer kafelków / wektorów (PostGIS, GeoServer), aby opublikować WFS / WMS
  3. Wybierz interfejs internetowy (GeoEXT, openlayers)

Możesz zainstalować większość tego w systemie Windows za pomocą https://trac.osgeo.org/osgeo4w/ (pakiet zarządzany i wszystko). Jestem pewien, że Ubuntu ma pakiety, jeśli nie oficjalne, to w PPA.


1

Całkowicie darmowe opcje wymagają integracji kilku programów, a openstreetmap zawiera łącza do oprogramowania korzystającego z bezpłatnych danych. Poleciłbym przejrzeć API Mapbox i narzędzia, takie jak studio Mapbox, jest bezpłatne dla małego użycia i skaluje się bardzo dobrze, z Native Mobile, reaguj natywnie, Offline jest również możliwość, można go używać z Apis, takimi jak Openlayers i ulotka. Siatki warstw interakcji i styl kafelków wektorowych to unikalne i potężne funkcje Mapbox, nie jest on jednak zorientowany na WFS lub WMS, w takim przypadku użyj Postgresql i Openlayers. Postgres ma funkcje Gml po wyjęciu z pudełka, więc aby korzystać z WFS, wystarczy dodać nagłówki do żądań, jednak do pełnej implementacji Ogc użyj geoserver lub Mapserver

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.