Tutorial für OpenLayers? [geschlossen]


12

Ich muss eine Webkarte mit vielen Rasterebenen erstellen. Ich verwende Mapserver und möchte Openlayers verwenden, finde jedoch kein gutes Tutorial dazu. Ich sehe ein paar alte Fragen ( 1 und 2 ), die besagen, dass es keine gute Dokumentation gab. Haben sich die Dinge in letzter Zeit geändert?

Ich möchte ein Tutorial finden, das von Grundlagen bis hin zu ziemlich komplizierten Dingen mit guten Erklärungen des Codes und Bildern / Beispielen der Ergebnisse reicht. Im Moment habe ich es geschafft, mit meiner .map- Datei nur die einfachste Webkarte zu erstellen, aber ich muss sie anpassen (Legenden hinzufügen, Ebenen gruppieren, mehr Steuerelemente hinzufügen, Einbettung usw.).

Antworten:


7

Während die anderen gute Online-Tutorials vorgeschlagen haben, möchte ich Ihnen etwas über das Buch erzählen, das mir eine dringend benötigte solide Grundlage in OpenLayers gegeben hat.

Das Buch ist: Erik Hazzards OpenLayers 2.10 Beginner's Guide. Es ist bei Packt Publishers erhältlich.

Ich kann das Buch nur empfehlen, da es sich mit allen wichtigen Teilen der Bibliothek befasst. Es geht von den Grundlagen aus und hilft Ihnen, langsam zu komplizierten Teilen der API zu gelangen.


2
Ab hier ist es als E-Book erhältlich , für £ 14.44 sieht es hervorragend aus.
Mark Cupitt

Der Preis richtet sich nach dem Land, von dem aus Sie darauf zugreifen. Es zeigt mir einen Preis, der ungefähr 3 $ beträgt;
Devdatta Tengshe

Wow, ich denke auf den Philippinen werden wir bestraft. sollten Sie es für mich kaufen :-)
Mark Cupitt

Vielen Dank für den Rat, habe gerade das Buch von einem Freund bekommen, mal sehen ...
Nadya

Kannst du nicht so etwas wie PirateBrowser verwenden, um dein Land zu verstecken und es zum niedrigsten Preis zu kaufen?
Unter dem Radar

13

Lassen Sie mich zusätzlich zu den oben genannten hervorragenden Antworten meine eigenen Erfahrungen hinzufügen. Vor anderthalb Jahren beschloss ich, OpenLayers (OL) in meinem Master-Projekt zu verwenden, und machte mich daran, es zu lernen. Seit Anfang der 1980er Jahre arbeite ich als Archäologe mit Programmieren und Erstellen digitaler Karten. Seit 15 Jahren bin ich ArcGIS-Benutzer. Ich bin froh, dass ich OL für mein Projekt gewählt habe, aber es war nicht immer ein reibungsloser Weg, es zu lernen. Einige Dinge waren nicht offensichtlich und wurden nur durch Ausprobieren gelernt. Also, ich habe ein paar Tipps für Anfänger.

Meine Reise zum Erlernen von OL begann erst richtig, als ich mich bei Safari Books Online für 10 USD / Monat für ein 5-Slot-Bookshelf-Konto anmeldete. Ich wollte Bücher vor dem Kauf lesen, und nur wenige Geschäfte, die man besuchen kann, haben GIS-bezogene Computerbücher. Auf OL 2 sind drei Bücher erschienen. Ein neueres 58-seitiges Buch mit dem Titel Instant OpenLayers Starter von Di Lorenzo und Allegri (April 2013) ist ein guter Einstieg, aber die ersten beiden Bücher und ihre Codebeispiele (im Internet des Herausgebers erhältlich) Seite, zusammen mit einem kostenlosen Beispielkapitel von jedem Buch) waren gute Ressourcen:

  • OpenLayers 2.10: Anfängerleitfaden von Erik Hazzard (März 2011)
  • OpenLayers Kochbuch von Antonio Santiago Perez (August 2012)

Aufgrund gelegentlicher Frustrationen über CSS und Browserkompatibilität lernte ich schließlich auch ein JavaScript-Framework. Ich wähle Dojo, weil Perez dies in seinem Buch verwendet hat. Modern Dojo (Dojo 1.7 +) unterscheidet sich erheblich von früheren Versionen und verwendet ein AMD-Format (Asynchronous Module Definition). Die Art und Weise, alles zu tun, änderte sich. Ich habe nicht verstanden, dass dieses ansonsten hervorragende Buch eine Dojo-Version vor 1.7 verwendet, die 9 Monate vor der Veröffentlichung des Buches im August 2012 veraltet war. Esri verwendete das Dojo vor 1.7 in seiner JavaScript ArcGIS-API, bis es im Juni 2012 modernisiert wurde Für viele ArcGIS-Javascript-Entwickler war dies ein schmerzhafter Wechsel.

Um zu verstehen, wie schlecht Dojo unterstützt wird, wurden die meisten Bücher - abgesehen von einem Buch über Dojo 1.3 aus dem Jahr 2010 - in den Jahren 2007 und 2008 geschrieben. Es gibt keine veröffentlichten Bücher für Modern Dojo - Sie müssen fast alle aus Online-Ressourcen lernen die sind auf ihrer Website. Um mit den Beispielen in Perez 'Buch arbeiten zu können, müssen Sie sich mit JavaScript auskennen, um die Dojo-Bits zu ignorieren und die Beispiele in einfaches JavaScript oder in ein Framework Ihrer Wahl zu verschieben.

Im Nachhinein wünschte ich, ich wäre mit dem ExtJS-Framework und GeoExt gegangen. ExtJS ist kostenlos, wenn Ihr Projekt Open Source ist, und da viele Unternehmen gerne für eine unterstützte Version bezahlen, können sie es sich leisten, Zeit für umfassende Website-Dokumentationen und Tutorials zu investieren.

Ich lerne am besten, indem ich mit Beispielen arbeite / sie hacke. Die Entwickler von OpenLayers verfolgen dieselbe Philosophie wie die primäre Dokumentation, auf die sie beim Lernen verweisen, indem sie die Beispiele untersuchen. Einige OL-Beispiele auf ihrer Website und anderswo weisen jedoch Probleme auf, die Anfänger stolpern lassen können. (Siehe unten.)

Das Vertrauen in Beispiele als Dokumentation bedeutet auch, dass der Benutzer keinen guten Workflow für die Entwicklung einer Webkarte versteht. Dies kann dazu führen, dass sich Karten unvollständig anfühlen. Beispielsweise fehlen ihnen möglicherweise CSS-Anpassungen an der Benutzeroberfläche der Karten und das "Look and Feel". Das Überschreiben des OL-CSS mit Anpassungen ist für den Anfänger entmutigend, aber Firebug kann Ihnen helfen, die zu überschreibenden Elementnamen zu finden. Das Fehlen eines akzeptierten Arbeitsablaufs kann auch zur Erstellung von Frankencode führen, da Benutzer Funktionen in ihren Code einlesen, wenn sie dies wünschen.

Dies führt mich zu dem letzten Punkt, der meiner Meinung nach in der OL-Site-Dokumentation fehlt, und zu den "Best Practices" für OL-Maps. Gibt es eine bessere Möglichkeit, meinen Code so zu organisieren, dass er modular und robust ist? Was sind die Tücken bei JavaScript-Verschlüssen und OL-Objekten? Wo soll ich meine Styles deklarieren? Und so weiter.

Abgesehen von den verschiedenen veralteten Dateien im Wiki gibt es zwei allgemeine Probleme, die Anfänger kennen sollten, wenn sie aus den offiziellen OL-Beispielen und API-Dokumenten lernen. Erstens gibt es keine Organisation für die Seite mit OL-Entwicklungsbeispielen auf der OL-Website. Es wird einfach der Feed aus der XML-Datei in diesem Verzeichnis (example-list.xml) der Beispiele (207 davon ab dem 13. Februar 2014) dargestellt und die Zeilen alphabetisch nach Dateinamen in einem Raster sortiert. Fortgeschrittenere Beispiele werden mit einfachen Beispielen gemischt. Sie können die Beispiele nach Schlüsselwörtern durchsuchen. In vielen Beispielen fehlen jedoch Schlüsselwörter, und die Suchfunktion enthält Inhalt und Seitentitel in der Suche, nicht nur Schlüsselwörter. Die Ergebnisse werden mit der höchsten Anzahl von Suchbegriffen zurückgegeben, die zuerst übereinstimmen, gefolgt von der Worthäufigkeit. Nur einer der Suchbegriffe muss übereinstimmen, damit er in den Ergebnissen angezeigt wird. Die UserRecipes-Seite im OL-Wiki listet ungefähr 90 Beispiele auf, die nach Kategorien geordnet sind. Diese Kategorisierung ist eine Hilfe. Davon sind 66 Live-Links zu den Beispielen auf der Beispielseite und der Rest sind schlechte Links zu entfernten Beispielen.

Zweitens gibt es grundsätzlich zwei Versionen der API-Dokumentation, die auf den ersten Blick identisch zu sein scheinen. Die offizielle API befindet sich in einem Verzeichnis mit dem Namen / apidocs und dem neuesten Stand. Die flüchtige Entwicklerbibliothek befindet sich jedoch in einem Verzeichnis mit dem Namen / docs. Die URLs sind ansonsten gleich. (Es gibt auch Trunk-Versionen.) Bearbeiten Sie einfach die Adresse der Seite, um die andere Version anzuzeigen. Das Wiki weist darauf hin, dass sich die Entwicklerbibliothek nicht darauf verlassen sollte, dass Eigenschaften, Funktionen usw. jederzeit aus der Bibliothek entfernt werden können. Da OpenLayers 3 realitätsnah ist (es ist in der Beta verfügbar und es gibt ein Buch darüber), gehe ich davon aus, dass sich in OL 2 in Zukunft nicht allzu viel ändern wird. Der Fokus liegt nun auf OL 3.

Im Allgemeinen finde ich, dass die OL-API-Seiten zu skelettartig sind und häufig keine Erklärungen oder anschaulichen Beispiele enthalten, insbesondere für jemanden, der Bibliotheken mit einer umfassenderen API-Dokumentation verwendet. Bei der Darstellung erhalten Sie kein klares Bild des Objekts, von dem es geerbt wird.

Von den OL-Beispielen im Web verwenden im Allgemeinen viele Objekte oder Syntax, die veraltet sind, weil sie durch verbesserte Versionen ersetzt wurden. Beispielsweise ist Layer.Vector jetzt die bevorzugte Methode zum Zeichnen von Markierungen, da Layer.Marker in Version 3 veraltet ist. Überprüfen Sie die Datei deprecated.js, um sicherzustellen, dass Sie keine Objekte verwenden, die sich auf dem Weg nach draußen befinden. Wenn Sie Ihren Code auf OL 3 aktualisieren, müssen Sie dies zumindest ändern.

Zusätzlich zu dem oben von Julien-Samuel Lacroix verlinkten Boundless OpenLayers-Workshop verfügt IBM über ein drei Jahre altes Tutorial, in dem OpenLayers, MapServer, Google Gears und jQuery zum Erstellen einer vollständigen GIS-Webanwendung verwendet werden: Bringen Sie Daten mit OpenLayers zusammen : Verwenden von Daten aus mehreren unterschiedlichen Quellen in Webkarten

Lesen Sie auch diesen nützlichen Beitrag zum Stylen des Ebenenwechslers

Google die Wörter OpenLayers und jsFiddle, um einige Beispiele für OL-Geigen zu erhalten. Das Ergebnis der Website von techslides ist eine Seite, auf der einige davon aufgelistet sind.

Beachten Sie außerdem, dass die Kartenbilder in den meisten Beispielen von OpenStreetMap-Servern (OSM) stammen. Diese gehen ab und zu aus, geplant oder ungeplant, und Sie erhalten rosa Kacheln an ihrer Stelle. Manchmal werden Sie denken, Sie hätten Ihren Code durcheinander gebracht. Sie können den Plattformstatus im OpenStreetMap-Wiki überprüfen.


2
Dies ist eine schöne ausführliche Antwort. Es ist eine Schande, dass wir nicht so viele Antworten dieser Art auf der Website haben.
Devdatta Tengshe

Leta, danke für die durchgehende Antwort! Jetzt kämpfe ich mit GeoExt (und ExtJS) und es gibt noch mehr Probleme mit Tutorials als mit OL, ihre Beispiele sehen ziemlich so aus :)
nadya


4

Open Layers ist ein fantastisches Paket, unglaublich flexibel, aber es gibt keine Dokumentation für Anfänger, aber jede Menge ausführliche Entwicklerdokumentation.

Als ich anfing, schaute ich mir alle Beispiele an , wählte diejenigen mit der gewünschten Funktionalität aus, analysierte den Code und baute die Funktionalität Schritt für Schritt auf, wobei ich sie testete. Ich fand, dass es schwieriger war, sich mit den Konzepten und Debug-Problemen auseinanderzusetzen, wenn man zu viel Funktionalität in einem Treffer versuchte.

Dann fand ich GIS @ SE, das eine große Hilfe bei bestimmten Themen war, entweder bei der Recherche nach Fragen anderer Leute oder bei meinen eigenen.

Abgesehen davon hat @Julian Ihnen wahrscheinlich die beste Option in Bezug auf Tutorials gegeben, sie sind ziemlich gut.


Vielen Dank für die Antwort, ich habe diese Beispiele bereits gesehen, konnte aber nicht finden, was ich brauche. Also muss ich codieren ...
Nadya

2

Um nur zu erwähnen, diese Seite von OpenGeo war auch für mich nützlich. Sie beginnen mit den Grundlagen und bieten ein gutes Beispiel für GetFeatureInfo- Ereignisse mit dem Entfernen von Popups.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.