Ich habe Google Maps ein paar Mal verwendet, aber zu fragen , was über Openlayers .
Bevor ich mit dem Codieren beginne, sind hier einige Fragen, die mir in den Sinn kommen:
- Warum sollte ich OpenLayers anstelle von Google Maps verwenden?
- Bis auf die OSS-Lizenz jedenfalls
- Haben Sie eine Situation erlebt, in der Sie empfehlen würden, OpenLayers absolut nicht zu verwenden?
- Ich habe nach "OpenLayers" bei Stack Overflow gesucht . Es gibt nicht viele Antworten. Bedeutet das, dass diese Lösung nicht viel verwendet wird? Könnte es ein Problem für die langfristige Rentabilität des Projekts sein?
- Für diejenigen unter Ihnen, die OpenLayers bereits verwendet haben: Gibt es häufige Fallstricke / Probleme, auf die ich stoßen kann?
- Was ist mit einem JavaScript-Framework? Ich habe gesehen, dass es Prototype verwendet , und ich kenne Prototype, also wäre das in Ordnung. Aber was ist mit etwas anderem wie MooTools ? (Was nicht mit Prototype kompatibel ist, übrigens)
- Gibt es irgendwelche Geschwindigkeits- und Leistungsprobleme? Ich muss auf meine Anwendung reagieren und kann nicht stundenlang warten, bis eine Karte angezeigt wird.
- Gibt es Karten für viele Orte oder fehlen viele davon?
- Das heißt, ich bin in Frankreich und brauche meine Bewerbung, um zumindest für Großstädte zu arbeiten ... Wird das in Ordnung sein?
- Wenn nicht, ist es einfach, Ebenen und Visualisierungen für OpenLayers zu finden und zu integrieren?
- Gibt es eine API zum Anzeigen von Straßen?
- Zum Beispiel, um Straßen anzuzeigen, die nur in eine Richtung verlaufen.
- Wenn ja, wie kann ich das machen? Muss ich eine Datei mit diesen Straßeninformationen haben und sie dann selbst auf der Karte anzeigen?
- Kennen Sie ein gutes Tutorial zu OpenLayers?
Ich habe es noch nicht ausprobiert, das sind aus heiterem Himmel Fragen ...
javascript
google-maps
openlayers
Pascal MARTIN
quelle
quelle
Antworten:
Das sind wirklich tolle Fragen! Ich bin ein professioneller OpenLayers-Entwickler und Fan, daher werde ich Ihre Fragen aus dieser Perspektive beantworten.
Warum sollte ich OpenLayers anstelle von Google Maps verwenden?
Ich würde mir überhaupt keine Sorgen um die langfristige Realisierbarkeit des Projekts machen. Es ist die führende clientseitige Open Source-Mapping-Bibliothek.
Gibt es häufige Fallstricke / Probleme, auf die ich stoßen kann?
JavaScript Framework-Kompatibilität
Gibt es Karten für viele Orte?
Gibt es eine API zum Anzeigen von Straßen?
Kennen Sie ein gutes Tutorial zu OpenLayers?
Ich hoffe das ist nützlich. Und ich bin bei Stack Overflow, wenn Sie Fragen haben!
quelle
Es ist nicht unbedingt eine Frage von OpenLayers ODER Google Maps. Sie können schließlich Google Maps für Ihren Kartenhintergrund in OpenLayers verwenden. Einige spezifischere Antworten:
Warum OpenLayers?
Tücken
Performance
JavaScript-Frameworks
Verfügbare Karten
quelle
Ich habe nicht viel Präsenz von OpenLayers-Benutzern auf SO gesehen, aber sie sind da draußen. Die OpenLayers-Mailinglisten sind ziemlich aktiv (ich bin bei Users and Dev und sehe täglich zwischen 50 und 100 E-Mails, in denen verschiedene Dinge besprochen werden. Sie können die Listen auch über diese Links durchsuchen.).
Ich kann nicht alle Ihre Fragen beantworten, aber ich werde darauf hinweisen, dass sich OpenLayers und Google Maps nicht gegenseitig ausschließen. OpenLayers ist eine Javascript-Bibliothek, mit der Sie mit Google Maps interagieren können. Schauen Sie sich dieses Beispiel an: OpenLayers mit Google Maps . Und hier ist die Hauptbeispielseite von OpenLayers .
quelle
Ein Punkt, der hier nicht vollständig angesprochen wurde, ist, dass durch die Verwendung von OpenLayers verschiedene Einschränkungen vermieden werden, die Google den Nutzungsbedingungen für seine Karten-APIs auferlegt, darunter:
Sie können eine Google-Karte nicht legal nur in einem Bereich Ihrer Website verwenden, für dessen Zugriff eine Zahlung erforderlich ist, oder für eine private Website, für die sich die Öffentlichkeit nicht anmelden kann (z. B. ein Unternehmens-Intranet). (IANAL, siehe jedoch Nutzungsbedingungen, 9.1 und die FAQ )
Sie können die Google-API nicht legal (oder praktisch) für Offline-Anwendungen verwenden (dh wenn die Kacheln von Ihrem eigenen Computer aus bereitgestellt werden). Auch wenn es keine gesetzlichen Einschränkungen gab, macht Google dies technisch sehr schwierig, während OpenLayers es einfach macht.
Google behält sich das Recht vor, den Zugriff auf die API zu sperren, wenn Sie eine Karte mit Inhalten anzeigen, die für Sie unangenehm sind. Das Beispiel in den FAQ ist eine Karte illegaler Drogen, die einen guten Eindruck von den Grauzonen vermittelt, die diese Einschränkung abdecken könnte.
Weitere Informationen finden Sie in diesen FAQ und in den Nutzungsbedingungen .
Als langjähriger Google Maps-Entwickler, der seit kurzem OpenLayers verwendet, habe ich das Gefühl, dass Google Maps eine bessere Dokumentation, eine größere Benutzergemeinschaft und eine klarere und stabilere API als OpenLayers bietet. Sie müssen also irgendwo einen Kompromiss eingehen.
quelle
Es hängt wirklich davon ab, wofür Sie die Karte verwenden möchten. Um einfach Punkte auf einer Karte zu zeichnen, ist Google Maps in Ordnung. Die Kartenebenen für Google Maps sind ebenfalls sehr detailliert. OpenLayers hingegen bietet weitaus mehr Funktionalität und ist sehr erweiterbar.
OpenLayers bietet viele Beispiele für den Einstieg.
Bei Karten ist OpenLayers nur eine API, daher müssen Sie sie bereitstellen, um Layer zuzuordnen. Die Google Maps-API ist auf die von Google bereitgestellten Kartenebenen beschränkt. Mit OpenLayer können Sie so ziemlich jeden öffentlich verfügbaren Kartendienst (WMS, WFS, TMS, WMS-C) anzeigen. Ein sehr gutes Beispiel ist openstreetmap.org - (globale Straßenkarte, die von der Community gesammelt wurde). OSM kann Openlayern als TMS-Schicht hinzugefügt werden. In diesem Beispiel finden Sie Anweisungen.
quelle
Einige Kunden lehnen die Verwendung von Google Maps möglicherweise ab oder haben starke Vorbehalte. Sie haben möglicherweise berechtigte Bedenken, dass Google ohne vorherige Ankündigung Werbung einführt oder die API ändert. Google Maps bietet jedoch den Vorteil der Integration in andere Google-Dienste (Ortsmarken, Hinzufügen von Fotos, Geokodierungsdienste). Da es sich um das Web handelt, können Sie immer viele verschiedene Mapping-Services und APIs kombinieren.
quelle
Ich stimme allen Antworten zu, aber es gibt einen sehr wichtigen Punkt, den niemand erwähnt. OpenLayers und Google Maps haben unterschiedliche Ziele.
OpenLayer ist ein hervorragendes Framework für die Anzeige von Geodaten. Google Maps ist jedoch ein Pool von Diensten, die unter anderem ein Framework für die Anzeige von Geodaten enthalten.
Google Maps bietet also viele Dienste und Funktionen, die OpenLayes nicht bietet. Einige Beispiele für Funktionen und Dienste von Google Maps sind die Lokalisierung von Regionen, die Sensorerkennung (für Geräte mit GPS) und die Benutzerlokalisierung, Geokodierung und umgekehrte Geokodierung, Straßenansicht usw.
quelle
Ich habe beide APIs verwendet. Ich erstelle eine Software für Unternehmen und diese Software erfordert eine Zuordnung, aber nicht alle Clients haben eine GoogleMaps-Lizenz. Daher muss ich beide Arten von Karten unterstützen.
Ich habe eine gemeinsame API erstellt, um die Unterschiede zwischen ihnen zu abstrahieren, und ich möchte Ihnen sagen, dass einige Dinge in der einen einfacher sind als in der anderen. Ähnlich wie bei der Begrenzung der Grenzen, an die Sie die Karte verschieben können, ist dies in OpenLayers viel einfacher, aber Heatmaps sind in GoogleMaps einfacher zu verwenden (es wird im Gegensatz zu den verfügbaren OpenLayers-Plugins offiziell von Google unterstützt).
OpenLayers unterstützen Offline-Karten. Einige meiner Benutzer befinden sich in privaten Intranets ohne Internetverbindung.
GoogleMaps verfügt über zwei Plugins, MarkCluster und Spiderfier , die eine Visualisierung einer Vielzahl von Markern ermöglichen.
GoogleMaps InfoWindows sind einfacher zu verwenden und benutzerfreundlicher als OpenLayers.Popups. Dies sind die kleinen Fenster, die sich öffnen können, wenn Sie auf eine Markierung klicken. Googlemaps InfoWindows sind standardmäßig auch viel hübscher. Sie müssen einige CSS-Assistenten mit den Popups ausführen.
GoogleMaps verfügt über eine Straßenansicht, die manchmal nützlich ist.
GoogleMaps bietet weitere Funktionen, die Sie möglicherweise benötigen. Viele Funktionen sind zwar auch in OpenLayers vorhanden, werden aber nicht offiziell unterstützt.
Normalerweise sollten Sie sich am Ende für OpenLayers entscheiden, da Sie weniger Probleme mit der Lizenzierung und der Bandbreitennutzung durch Google Maps haben. Beide handhaben grundlegende Zuordnungen (dh das Anzeigen von Markierungen auf einer Karte) sehr gut. Wenn Sie keine bestimmte Funktion finden, die Sie benötigen, sollten Sie sich für OpenLayers entscheiden. Sehen Sie das für weitere Informationen über Googlemaps Abrechnungs- und wenn Sie es kostenlos nutzen können.
Auch GoogleMaps hat seinen grundlegenden Geolocation-Typ als "LatLng" und Openlayers verwenden "LonLat", was mich verrückt macht, weil ich die Reihenfolge der Parameter in Funktionsaufrufen immer wieder falsch verstehe.
quelle
Zusätzlich zu denen, die Geschwindigkeitsprobleme erwähnt haben, möchte ich hinzufügen, dass der VML-Renderer des IE mit einer Vektorebene mit vielen Funktionen sehr langsam werden kann. Ein Benutzer erwähnte ungefähr 200. Genau das kann ich hinzufügen, bevor der IE bis zum Einfrieren erheblich langsamer wird. Wenn Sie Features hinzufügen, bei denen es sich um Textbeschriftungen handelt, können Sie die Hälfte weniger hinzufügen, wahrscheinlich weil intern jede Textbeschriftung aus zwei VML-Elementen besteht.
In Google können Sie ein benutzerdefiniertes GOverlay erstellen, dessen Inhalt ein "div" ist, das im IE problemlos gerendert wird.
quelle
Ein paar Dinge, die ich aus zwei Perspektiven hinzufügen möchte: Client-Nutzung und Daten-Derving.
Client-Nutzung:
Datenbereitstellung:
Stellen Sie KML- Daten bereit ? In diesem Fall funktionieren sowohl OpenLayers als auch Google Maps damit, und Sie müssen sich wahrscheinlich anhand der Client-Nutzung entscheiden.
Bedienen Sie andere Arten von Datendiensten? (WMS, WFS, CSV usw.) Wenn ja, dann hat OpenLayers sehr wahrscheinlich Beispiele und Unterstützung dafür.
quelle
OL hat eine große Fangemeinde und ist vielleicht das am häufigsten verwendete Opensource-Geothing der Welt.
Sie sehen nicht so viele Threads und Posts darüber in diesem Cyberplace, weil die Leute hier dazu neigen, über andere Arten von Technologien wie JSF und Mobile (nicht geo) zu diskutieren, nicht weil OL wie Streben ist.
Ol hat jedoch einige Nachteile, hauptsächlich, dass es so niedrig ist, dass Sie viel Code schreiben müssen, um allgemeine Operationen durchzuführen. Das kann auch gut funktionieren, denn als Entwickler a: Sie haben den gesamten Code im Voraus und b: das Optimieren und Anpassen ist sehr einfach.
Es gibt anspruchsvollere kostenlose Geotools, aber alles, was sie tun, ist Openlayers zu nennen und einige der langweiligeren Aufgaben zu abstrahieren.
Verwenden Sie es also sicher. Es ist ausgereift, robust und wird in absehbarer Zeit nicht sterben. Wenn Sie jedoch Ihren Entwicklungsprozess beschleunigen möchten, sollten Sie die anderen Tools ausprobieren, die darüber montiert werden.
Einen schönen Tag noch
quelle