Vergleichen Sie verschiedene JavaScript-Zuordnungsbibliotheken?

138

Ich arbeite an einem webbasierten Mapping-System und versuche herauszufinden, welche Bibliothek verwendet werden soll.

Dies sind Links zu Vergleichen der verfügbaren Bibliotheken:

Bildbeschreibung hier eingeben

Die Liste der Bibliotheken bisher:

  • Google Maps
  • Microsoft Virtual Earth
  • MapQuest
  • Faltblatt - "Der Kommentar ist kleiner, schneller, neuer und unkomplizierter und kann auch als weniger Funktionen und weniger getestet gelesen werden." -Geographika (siehe unten)
  • ArcGIS API für JavaScript - Funktioniert am besten mit ArcGIS Server (siehe unten). Es sind auch Erweiterungen für Google Maps und Bing Maps verfügbar, mit denen Sie die ESRI-API mit Google / Bing Maps verwenden können (dies gilt jedoch für die meisten Bibliotheken).
  • Yahoo Map APIs
  • Unter Verwendung von Michelin
  • OpenLayers - Umfangreiche Dokumentation und zahlreiche Funktionen sowie die Möglichkeit, verschiedene Kartenanbieter zu verwenden.
  • Mapquery - MapQuery wurde veröffentlicht und verfügt nun über einige nützliche Dokumentationen. Es hat das sehr lohnende Ziel, OpenLayers und jQuery zu kombinieren. Wenn Sie besonders an OpenLayers + jQuery interessiert sind oder einen Beitrag zu einer JavaScript-Zuordnungsbibliothek leisten möchten, können Sie sich beteiligen und Ihre Bemühungen einbringen. Wenn Sie jedoch nur ein Endbenutzer sein möchten oder in diesem Bereich neu sind, ist dies möglicherweise nichts für Sie.
  • Mapstraction - Vereinfacht die Arbeit, insbesondere mit mehreren Grundkartenanbietern. Es ist jedoch noch in Arbeit und die Funktionalität fehlt an einigen Stellen, ebenso wie die Dokumentation. (ZB "Ein GeoJSON-Objekt vom Typ" FeatureCollection "ist ein Feature-Collection-Objekt." Nicht sehr informativ.) Es scheint, dass es noch in der aktiven Entwicklung ist, aber seit dem 04.04.11 wurde kein Commit für Github durchgeführt seit Januar.
  • deCarta - Verfügt über ein mobiles und Desktop-Javascript - das erste ist HTML5 / CSS3-kompatibel und das zweite ist Browser-kompatibler. Quellcode zur Verfügung gestellt. Freundlichste Entwicklerbegriffe für eine kommerzielle API. Sie können die Karte mit einem Branding versehen und es gibt verschiedene Kartenstile. Sie können NAVTEQ- oder OSM-Daten auswählen. Sie haben auch mehrere mobile APIs. - bearbeitet von TheSteve0 - einem deCarta-Mitarbeiter
  • Cloudmade
  • Polymaps - Erleichtert das Zusammenstellen von Raster- und Vektordaten aus vielen verschiedenen Quellen. Ermöglicht das einfache Hinzufügen eigener Farben, Gruppierungen und Interaktionen. Läuft schnell, verwaltet das Laden von Kacheln im Hintergrund und benötigt nur 30 KB Javascript. Ein möglicher Nachteil: Es verwendet SVG, was bedeutet, dass es in MSIE 7 oder 8 nicht funktioniert und nicht funktionieren wird. Es funktioniert in jedem anderen Browser hervorragend und sollte in IE9 funktionieren
  • Jump - Jump ist eine leichtgewichtige Kartenbibliothek, die für sich alleine funktioniert. Dies bedeutet, dass es sich nicht um einen Wrapper für OpenLayers oder die GoogleMaps-API handelt. Derzeit ist es in der Entwicklung, aber viele wichtige Funktionen funktionieren gut.
  • ModestMaps - Eine weitere kleinere, schnellere und neuere JS-Mapping-Bibliothek der Hersteller von Mapbox und TileMill.
  • Mapiator

OpenLayers ist das, was ich gerade benutze. Sie können viel damit anfangen und es unterstützt die meisten Datentypen. Es ist jedoch nicht für alles das Beste. Zum Beispiel wirkt Leaflet in vielerlei Hinsicht flüssiger, mit Bildfading und anderen visuellen Verbesserungen. Wenn Sie sich für jQuery interessieren, sollten Sie MapQuery ausprobieren, eine Kombination aus jQuery und OpenLayers.

Mr_Chimp
quelle

Antworten:

93

Diese Frage wurde in Community-Wiki konvertiert und durch Wiki gesperrt, da es sich um ein Beispiel für eine Frage handelt, die nach einer Liste von Antworten sucht und so beliebt zu sein scheint, dass sie vor dem Schließen geschützt ist. Dies sollte als Sonderfall behandelt werden und nicht als die Art von Frage angesehen werden, die auf dieser oder einer anderen Stack Exchange-Site empfohlen wird. Wenn Sie jedoch mehr Inhalt dazu beitragen möchten, können Sie dies tun, indem Sie diese Antwort bearbeiten .


Für Nicht-GIS-Hintergrundentwickler, die Mapping-Apps mit nur einer Funktion erstellen, empfehle ich wahrscheinlich Leaflet (jetzt von MapBox unterstützt). Einfach zu bedienen und klein. Mehr Funktionalität setzt Plugins unterschiedlicher Qualität und Unterstützung voraus.

GIS-Online-Typ-Anwendung - OpenLayers3 verwenden - verfügt über die gesamte Suite von Datenquellen, Steuerelementen usw. in einer einzigen Bibliothek. Es kann auch für einfache Mapping-Apps verwendet werden. Wenn Sie also einen Mix haben, würde ich diesen für alles verwenden.

Google verfügt weiterhin über die Kombination aus Bibliothek und Daten (z. B. StreetView ist nirgendwo anders verfügbar).

Esri hat GUI-Web-App-Builder, und wie unten angegeben, warum komplizieren Sie Dinge, wenn Sie bereits ihren Stapel verwenden.

Kommerzielle APIs (Google, Bing, Yahoo)

Wenn Sie eine kommerzielle API verwenden, sind Sie den Änderungen, die der Anbieter an der API oder den Nutzungsbedingungen vornimmt, ausgeliefert. Was passiert zum Beispiel, wenn in Ihrem lokalen Regierungsportal, das Google Maps verwendet, plötzlich Anzeigen auftauchen ? Möchten Sie Ihren JavaScript Google Maps-Code für eine Intranet-Site wiederverwenden? Sie müssen die Lizenzgebühr von 10.000 US-Dollar bezahlen.

Microsoft hat häufig klarere und festere Bedingungen für seine Dienste (wenn bezahlt wird), sodass hier möglicherweise ein geringeres Risiko besteht.

Die jüngste Gegenreaktion gegen Twitter ist ein gutes Beispiel dafür, dass Entwickler eine API haben, die sich geändert hat. Wenn Sie nicht für eine Dienstleistung bezahlen, sind Sie (oder Ihr System) derjenige, der verkauft wird.

Google berechnet ab Oktober 2011 eine Gebühr für die Nutzung seiner Karten.

Esri

Wenn Sie einen Esri-Stack verwenden, funktioniert die ArcGIS-API für JavaScript zweifelsohne darüber hinaus. Aus einem GIS-Hintergrund kommend hat Esri wahrscheinlich mehr über traditionelle GIS-Aufgaben und -Funktionen nachgedacht als über die "Neo-Geography" -Webgiganten (obwohl dies nur eine Meinung / ein Gefühl ist).

OpenLayers bietet integrierte Unterstützung für ArcGIS REST-Layer . Wenn Sie Ihren Code für nicht auf ESRI basierende Websites wiederverwenden möchten, ist eine offene API für Sie am besten geeignet.

OpenLayers verwenden ...

Ich kann mir nicht vorstellen, warum Entwickler eine andere API als OpenLayers verwenden würden. Open Source-Projekte führen zu verwandten Open Source-Projekten, sodass es eine Fülle von wiederverwendbaren Komponenten gibt, wie z. B. die GeoExt-Bibliothek , MapQuery und GeoPrisma .

Ich füge hinzu, nur weil ein Projekt Open Source ist, ist es nicht automatisch besser als kommerzielle Entsprechungen - aber die OpenLayers-API entspricht in diesem Fall der kommerziellen Konkurrenz und der Fähigkeit zu sehen, wie die Quelle funktioniert, die Komponententests, die Mit Skripten usw. können Sie ganz einfach neue Funktionen darauf aufbauen.

In letzter Zeit wurde OpenLayers kritisiert , vor allem in Bezug auf Komplexität, Design und Größe. Hier und hier wurden Gegenargumente von Christopher Schmidt, einem der Hauptentwickler von OpenLayers, vorgebracht.

Es ist erwähnenswert, dass Sie, wenn Sie eine einfache Open Source-Mapping-API benötigen, die Broschüre von Cloudmade lesen müssen .

Der Kommentar, der kleiner, schneller, neuer und einfacher ist, kann auch als weniger Features und weniger getestet gelesen werden .

Durchsuchen Sie die API-Dokumentation nach Leaflet und OpenLayers . Letzteres umfasst Elemente wie WFS-Ebenen, Bearbeitungstools und SLD-Unterstützung. Es wurde auch in vielen verschiedenen Umgebungen getestet und funktioniert in IE6 (für Benutzer von Behörden und lokalen Behörden).

Zur einfacheren Anzeige von Geodaten Die Broschüre ist ideal und erleichtert den Einstieg. Ich werde mich jedoch an OpenLayers halten, um funktionsreichere GIS-Anwendungen zu erhalten.

Vorbehalte

Ein möglicher Nachteil ist, dass häufig neue Innovationen zuerst in den Systemen der kommerziellen Anbieter zu sehen sind - diese werden jedoch fast immer rechtzeitig an OpenLayers weitergegeben.

Schließlich bin ich mir sicher, dass es bestimmte Szenarien gibt, in denen andere APIs besser geeignet sind - auf kundenspezifischer Hardware, um in andere IT-Systeme eines Unternehmens zu passen, oder wenn Sie eine API bereits genau kennen und ein System in der Hälfte der Zeit entwickeln können .

Alle APIs, die Sie erwähnt haben, sind in der Lage, hervorragende Online-Mapping-Systeme zu erstellen. Ihre Wahl sollte jedoch auch zu Ihren zukünftigen Entwicklungsanforderungen oder den Ihres Unternehmens passen.

geographika
quelle
50

Es gibt einen neuen Player auf der Javascript-Mapping-Seite - Leaflet . Entwickelt von CloudMade unter BSD-Lizenz.

Sieht echt vielversprechend aus.

Bildbeschreibung hier eingeben

( Quelle )

radek
quelle
3
Wow das scheint eine beeindruckende Bibliothek zu sein. Ich bin überrascht, dass ich mir dessen nicht bewusst war.
dkroy
2
Hier ist ein Vergleich des Navigationsverhaltens von Flugblättern und Openlayern.
dkroy
2
Schönes Flussdiagramm. Merkblatt ist eigentlich ganz nett.
Mr_Chimp
7
Nachdem ich versucht habe, Leaflet für einige komplexere Dinge zu verwenden, muss ich zugeben, dass es im Vergleich zu OpenLayers oder GeoExt ziemlich eingeschränkt ist. Es ist sehr einfach einzurichten und sieht sehr gut aus, aber in Bezug auf die Interaktionen sind die Möglichkeiten begrenzt. Aber auch hier hat jeder seinen Platz.
Mr_Chimp
3
Das aktualisierte Exemplar der Tabelle (ab Januar 2012) ist verfügbar unter: geotux.tuxfamily.org/index.php/en/geo-blogs/item/…
Will.
35

Ich hatte ein Google Maps / arcgis-API-Projekt und vor ungefähr einem Jahr habe ich mich für OpenLayers entschieden. Je mehr ich damit gearbeitet habe, desto mehr hat es mir gefallen und ich habe mich für die Migration entschieden. Ich habe 30 - 100 Zeilen Google-Code in 1 - 3 Zeilen immer wieder in meinem Code gekürzt. Einfach, weil OpenLayers Funktionen für das hatte, was ich tun wollte und es für Google Maps manuell einprogrammieren musste.

CaptDragon
quelle
2
Es ist alles gut. Danke für deinen Beitrag! Ich bin mir nicht sicher, ob es eine richtige Antwort dafür gibt, daher sind Meinungen und Anekdoten nützlich.
Mr_Chimp
2
+1 Ich habe immer OpenLayers gegenüber Google Maps ausgewählt, wenn mehr als eine Hand voller Marker angezeigt werden soll.
Underdunkel
20

CartoDB ist ein Tool zum Analysieren, Visualisieren und Freigeben Ihrer Geodaten in PostGIS. Es ist eine Open-Source- Plattform für Geodatenbanken, die eine SQL-API-Ebene bereitstellt. Entwickler können Abfragen zu einer Cloud-PostrgreSQL + OpenGIS-Datenbank durchführen, die für geografische Zwecke optimiert ist.

Bildbeschreibung hier eingeben

Arturo Herrero
quelle
12

Ich vergleiche (mit Highlights und Notizen) den Code, der für eine einfache, spezifische und allgemeine Aufgabe erforderlich ist, in:

  • MapQuest
  • Google Maps
  • bing
  • Ovi
  • Esri
  • OpenLayers
  • jQuery Geo

hier: http://trippingthebits.com/geopres/

Der Beitrag ist für eine Präsentation, die ich auf jQuery Geo gegeben habe und die leider nicht in Ihrer Liste enthalten ist.

Ryanttb
quelle
Das ist ein guter Artikel. Ich mag deine Farbcodierung! Sehr gute Idee.
Mr_Chimp
jQuery Geo FTW!
Sameer
1
Vielen Dank @SameerAlibhai! Bleiben Sie dran, wir werden Release Candidate 1 bald veröffentlichen.
Ryanttb
11

Ich möchte einen Globus im Browser visualisieren. Caesium ist ein netter Globus . (Funktioniert ohne Plugin, aber Browser benötigt WebGL-Unterstützung)

Kann 3D-, 2D- und 2.5D-Ansicht anzeigen

Caesium unterstützt 3D, 2D und 2.5D

Unterstützung für verschiedene Raster- / Vektorformate (KML etc.)

Unterstützung für verschiedene Raster- / Vektordaten

Freie Kontrolle der Kamera und Kameraflüge

Steuern Sie die Kamera

... und alles in (modernen) Browsern.

Beachwalker
quelle
2
Wow, das ist wirklich ein sehr schönes Projekt! :)
Krystian
1
OK, aber können Sie uns dann erklären, warum Cäsium das Standard-WFS (Web Feature Service) nicht unterstützt (und viele andere)? Es scheint mir, dass dies ein sehr leistungsfähiger Betrachter ist, aber überhaupt kein GIS-System.
Web-GIS-Unternehmer
11

Ich bin nicht in der Lage, einen vollständigen Vergleich anzustellen , aber ich habe drei verschiedene kleine Projekte mit Polymaps durchgeführt und kann dies kommentieren. Seine Hauptstärke besteht darin, dass es sehr einfach ist, Raster- und Vektordaten aus vielen verschiedenen Quellen zusammenzusetzen. Es kann all Ihren Anforderungen gerecht werden, insbesondere indem Sie ganz einfach Ihre eigenen Farben, Gruppierungen und Interaktionen hinzufügen können. Polymaps ist auch sehr effizient: Es läuft schnell, es verwaltet das Laden von Hintergrundkacheln gut und es sind nur 30 KB Javascript.

Der Hauptnachteil von Polymaps ist die Verwendung von SVG, was bedeutet, dass es in MSIE 7 oder 8 nicht funktioniert und nicht funktionieren wird. Es funktioniert in jedem anderen Browser und sollte in IE9 funktionieren, aber ich bin nicht sicher, wie gut es getestet ist. SVG ist auch eine Stärke: Es ist einfach zu programmieren und das Rendering sieht gut aus, insbesondere das Skalieren von Vektor- und Rasterfunktionen in kleinen Schritten.

Eine Einschränkung zu Bibliotheken: Wenn Sie die Raster-Kacheln von Google als Grundkarte verwenden möchten, müssen Sie deren Javascript-Bibliotheken verwenden. OpenStreetMap usw. verfügen über wesentlich mehr Lizenzen, mit denen Sie Bibliotheken auswählen können.

(Diese Antwort stammt aus dem Jahr 2011 und vieles hat sich geändert. Polymaps werden nicht mehr gepflegt. Zu diesem Zeitpunkt ist Leaflet die bevorzugte Open-Source-Bibliothek.)

Nelson
quelle
4
Nur ein Update meiner Antwort; Polymaps hat sich seit einigen Jahren nicht mehr weiterentwickelt. Es ist immer noch eine interessante Bibliothek mit einigen einzigartigen Fähigkeiten, aber ich würde sie nicht für ein neues Projekt verwenden. In diesen Tagen verwende ich Leaflet.
Nelson
9

Ich bin ein graduierter Kartografiestudent und ein Neuling im Bereich Webmapping. Ich habe jedoch an einem Projekt gearbeitet, um die verschiedenen Technologien zu vergleichen und eine grundlegende Anleitung für den Einstieg in das Webmapping zusammenzustellen. Meine Analyse ist keineswegs umfassend, und ich habe versucht, ein Gefühl für jede Bibliothek zu bekommen, indem ich mit ihnen und mit Beiträgen wie diesen erfahrener Programmierer herumgespielt habe. Über Feedback würde ich mich sehr freuen.

Northlandiguana
quelle
(+1) Vielen Dank für Ihren Beitrag - Willkommen in unserer Community!
Whuber
7

Mapfluence von Urban Mapping ist ebenfalls im Mix. Gehostete Mapping-Plattform, die webbasierte Geodienste bietet, auf die REST-konform und mit JavaScript (verbesserte API für Dokumente / Tutorials unterwegs) zugegriffen werden kann. Oder OL, wenn du es willst. Wir rendern unsere eigenen Grundkacheln , verfügen über einen umfangreichen Katalog von On-Demand-Daten und unterstützen Daten und andere Visualisierungsabfragen.

Schauen Sie sich das O'Reilly-Webinar über Geodienste + Big Data auf Mi an, um einen Überblick darüber zu erhalten, was was in Geo ist.

user2566
quelle
7

Sie könnten auch einen Blick auf Geomajas werfen . Dies ist ein GIS-Framework, das in Java geschrieben ist (einschließlich eines Java-Clients, der GWT verwendet). Derzeit wird jedoch ein Plug-in für die Bereitstellung einer vollständigen clientseitigen API in JavaScript ausgeführt. Noch nicht ganz stabil, aber einen Blick wert. Der Vorteil der Verwendung von Geomajas ist die starke Integration zwischen Back-End und Client, die einige Vorteile mit sich bringt, darunter die Möglichkeit, die Arbeit einfach auf den Server zu verlagern und speziell für die Sicherheit hinzuzufügen.

Joachim Van der Auwera
quelle
6

Ich würde ammap empfehlen: http://www.ammap.com Früher hatten sie Flash-Karten, aber kürzlich wurden JavaScript-Karten mit vielen tollen Funktionen eingeführt.

null
quelle
4

Wenn Sie nach einer Datenvisualisierungsbibliothek suchen, schauen Sie sich Highmaps von den Leuten an, die hinter Highcharts stehen (ich selbst eingeschlossen - derzeit als Softwareentwickler beschäftigt). Es ist kostenlos für den nicht-kommerziellen Gebrauch, funktioniert hervorragend mit mobilen Browsern (volle Touch-Unterstützung) und alten IE bis hinunter zu IE6. Unterstützt erweiterte dynamische Funktionen wie Drilldown und umfangreiche QuickInfos.

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Oystein
quelle
3

Eine interessante Methode zum Vergleich der gewünschten Funktionen von JavaScript-Zuordnungsbibliotheken (nicht auf diesen Anwendungsfall beschränkt) wurde auf der NACIS 2012-Veranstaltung von Richard Donohue & al. Vorgestellt . . Der interessante Teil handelt davon, wie sie die Klassifizierung abhängig vom Zweck und den erforderlichen Merkmalen vornehmen.

ThomasG77
quelle
3

Ich fand diesen Beitrag nach einer Suche nach einem Vergleich der aktuellen Web-Mapping-Toolkits. Ich denke, es ist immer noch meistens relevant. Ich wollte jedoch die umfassende Liste der OSGeo-Toolkits als zusätzliche Ressource freigeben .

Barbarossa
quelle
2

Vielleicht können Sie auch Heron in Betracht ziehen . Es basiert auf Ext und offenen Ebenen. Sie haben viele Vorlagen, die Sie anpassen können.

Ein weiterer potenzieller Kandidat ist GeoJS .

Abhijit Gujar
quelle