Kostenloser Kartenservice für private Webanwendungen

12

Hintergrund

Anzeigen einer Karte (nur für den internen Gebrauch) auf einer Webseite. Die Anwendung muss in der Lage sein, benutzerdefinierte Layer hinzuzufügen (ohne die Daten an den Karten-Service-Host zu senden):

  • Gemeindezonen (definiert durch Shapefiles)
  • Benutzerdefinierte Zonen (durch Polygone definiert, möglicherweise in Bezug auf städtische Zonen)
  • Standort (definiert durch Lat / Long)
  • Zusätzliche Stadtdaten (definiert durch Formdateien)

Da es sich um ein privates Unternehmen handelt, werden viele Kartendienste eliminiert, darunter: Google Maps, Bing, Yahoo! Karten, MapQuest und andere kostenpflichtige Dienste.

Update Nr. 1

Vielleicht ist MapQuest eine Möglichkeit .

Update Nr. 2

Anforderungen, die ich vergessen habe zu erwähnen:

  1. Es gibt zusätzliche Daten (Städte, Ortschaften, Weiler), die nicht Teil von OpenStreetMap sind. Diese Städte müssen angegeben werden, ohne die Daten an den Kartenanbieter weiterzugeben.
  2. Es gibt verschiedene Ebenen (z. B. Standorte von Mitarbeitern), die ebenfalls angezeigt werden müssen, ohne dem Kartenanbieter mitzuteilen, wo sich die Daten befinden (dh die Daten befinden sich hinter einer Firewall).

Aktuelle Entwicklung

Derzeit konnte ich keinen Server finden, der meinen Anforderungen entspricht. Daher habe ich die Anweisungen auf verschiedenen Websites befolgt, um einen Mapnik-Webserver zu installieren:

Zu diesem Zeitpunkt habe ich verschiedene Teile der Daten:

  • Stadt- und Gemeindedaten (Formdateien in PostGIS geladen)
  • Natural Earth-Daten (Formdateien; nicht geladen)
  • Mapnik Stylesheets (verschiedene Dateien; nicht geladen)

GeoServer

Ich habe versucht, GeoServer (vor Mapnik) zu installieren, fand aber, dass die Dokumentation fehlt, dass das webbasierte Verwaltungstool schwer zu konfigurieren ist und dass die Reaktionszeit auf einem 2-GHz-Computer schmerzhaft langsam ist (10 Sekunden, um eine Kachel mit einem zu rendern Single Layer: Straßen) und die Standard-Ästhetik langweilig. (Ich weiß, dass ich Stylesheets verwenden kann, um die Präsentation zu beleben, aber das bedeutet, dass ich geeignete Dateien finden [oder erstellen !], Installieren, testen usw. muss.)

Bedarf

Die technischen Anforderungen umfassen:

  • Städte, Straßen, Gewässer (Seen, Flüsse, Ozeane)
  • Politische Grenzen (Provinzen, Länder)
  • Hohe Qualität (optisch ähnlich wie Google Maps, MapQuest usw.)
  • Hohe Betriebszeit
  • 900913 Projektion (ähnlich wie bei Google Maps)
  • Responsive Plättchen (unter 0,1 Sekunden pro Plättchen)
  • Hervorragende Abdeckung der Straßendaten für Kanada
  • Nützlich für rutschige Karten (kompatibel mit OpenLayers)
  • 10.000 Kachelanfragen pro Tag
  • Kostenlos für den kommerziellen (oder privaten) Gebrauch oder weniger als 2000 US-Dollar pro Jahr?

Gutes Beispiel

Hier ist ein hervorragendes Beispiel (OpenLayers) für das, was ich erreichen möchte:

Schlechte Beispiele

Ein Beispiel für das, was ich nicht erreichen möchte:

Ein Beispiel für unvollständige Daten:

ähnliche Links

Frage

Welche WMS-, WMTS- oder WFS-Server bieten die erforderliche Funktionalität?

Dave Jarvis
quelle

Antworten:

11

Ich bin mir nicht sicher, warum Sie Dienste wie Google Maps ausschließen, zumal Ihr erwarteter Datenverkehr nicht so hoch ist (Google berechnet ab 25.000 Kartenansichten (Ihre Kartenansichten werden deutlich unter 10.000 liegen): https://developers.google. com / maps / faq # usage_pricing ). Was Sie grundsätzlich brauchen, sind zwei Dinge:

  1. Jemand, der Ihnen die Web-Slippy-Map zur Verfügung stellt. Dies können Google Maps, Bing, MapQuest, Cloudmade usw. sein. Sie können auch einen eigenen Kachelserver betreiben und OpenStreetMap-Daten verwenden.
  2. Rendern Ihrer eigenen Vektordaten auf der Clientseite (mithilfe von Javascript) über der Webkarte. Es gibt mehrere Open-Source-Bibliotheken, die das können (OpenLayers, Leaflet, Polymaps ...).

Einige Hinweise zur weiteren Untersuchung:

Igor Brejc
quelle
8
Die Nutzungsbedingungen von Google Maps verbieten die Anzeige von Karten auf privaten Servern (dh der Server muss für die breite Öffentlichkeit zugänglich sein). developers.google.com/maps/terms ... "Ihre Maps-API-Implementierung darf nicht nur in einem internen Netzwerk ausgeführt werden." Das schließt es also aus.
Dave Jarvis
OK, das macht Sinn. In diesem Fall ist OSM der richtige Weg.
Igor Brejc
3

OpenLayer mit OpenStreetmap scheinen Ihre beste kostenlose Option zu sein. Dann würden Sie Ihre Layer mit WMS (wie Mapserver oder Geoserver) hinzufügen. Sie können auch Google Maps mit einer Lizenz verwenden.

Ich habe viel Erfahrung damit, da ich eine Reihe von Websites entwickelt habe, einige davon von Grund auf mit benutzerdefinierten Kacheln.

Ich habe nicht mit Geoserver gearbeitet, sondern mit Mapserver. Sie können nicht erwarten, dass der Server in Echtzeit Millionen von Details von Features wiedergibt. Ich würde sagen, dass die Leistung von diesen immer verbessert werden muss, indem die Daten auf Detailebenen (entsprechend dem Maßstab oder Zoom) vereinfacht werden und möglicherweise Basisdaten auf Kacheln gebrannt werden.

Jetzt arbeite ich an Mobnetics Map

Hierfür werden Openlayers, OSM-Kacheln, PostgreSQL und Java verwendet. Das Schöne daran ist, dass es sich an alle GIS-Daten anpasst (mithilfe von Metadaten) und es Benutzern dann ermöglicht, die Daten abzufragen. Es befindet sich in ständiger Entwicklung und verfügt derzeit nur über zusätzliche Daten für Portugal (als Testfall).

Als Nächstes möchte ich Kunden, die auf GIS-Daten hosten, die sie remote einrichten und aktualisieren können, anbieten, damit die Kunden auf der Site wie ihre eigenen arbeiten können.
Es wäre schön, einen Kunden zu haben, während meine Firma die Seite entwickelt.

Ansonsten kann ich auch eine benutzerdefinierte Installation dieser Site auf Ihrem Server durchführen und diese remote warten. Wir haben dies einigen Kunden angetan.

freundliche Grüße,

Joaquim Muchaxo

muchaxo
quelle
Könnte etwas langwierig sein, aber wissen Sie, wo Sie mehr über das Einrichten erfahren können?
QGISUser
1

Ich denke, das Wort Open Source wird in diesem Thread ziemlich großzügig verwendet;)

Zwei weitere Optionen:

pgager
quelle
1
Keine dieser Optionen, da die Frage nach kostenlosen privaten Diensten gestellt wurde
Ryan Garnett
1

Sie können natürlich ein kostenpflichtiges GIS verwenden. Ich arbeite in einem Gemeinderat und wir verwenden Exponare. Exponare ist einfach und funktioniert gut, aber es wird Sie kosten.

ArcMap ist am ausgefallensten und es ist eine Software, mit der Dekho macht, was Sie wollen.

Wenn Sie Ihren eigenen Stack rollen möchten, lesen Sie http://opengeo.org/, um den vollständigen Stack in einem unterstützten Modell zu erhalten.

Ich verstehe, es selbst zu tun, um Folgendes zu tun:

  1. Holen Sie sich Ihre Daten in eine räumliche Datenbank, dh PostGIS
  2. Wählen Sie Ihren Kachel- / Vektorserver (PostGIS, GeoServer), um WFS / WMS zu veröffentlichen
  3. Wählen Sie Ihr Web-Frontend (GeoEXT, OpenLayer)

Sie können vieles davon unter Windows mit https://trac.osgeo.org/osgeo4w/ (paketverwaltet und alles) installieren . Ich bin sicher, Ubuntu hat die Pakete, wenn nicht offiziell, dann in einem PPA.

Alex Leith
quelle
1

Die völlig kostenlosen Optionen erfordern die Integration einiger weniger Software, und openstreetmap verfügt über Links zu Software, die ihre kostenlosen Daten verwenden. Ich würde empfehlen, die Mapbox-API und -Tools als Mapbox Studio zu verwenden. Sie sind kostenlos und lassen sich sehr gut skalieren. Mit Native Mobile können Sie nativ reagieren. Auch Offline ist möglich. Die Raster der Interaktionsebenen und das Styling der Vektorkacheln sind einzigartige und leistungsstarke Funktionen von Mapbox. Sie sind jedoch nicht auf WFS oder WMS ausgerichtet. Verwenden Sie in diesem Fall auch Postgresql und Openlayers. Postgres verfügt standardmäßig über Gml-Funktionen. Um WFS zu verwenden, müssen nur einige Header zu Anforderungen hinzugefügt werden. Für eine vollständige Ogc-Implementierung verwenden Sie jedoch Geoserver oder Mapserver

muchaxo
quelle