Welche Technologien und Fähigkeiten sollte jemand erwerben, der eine Web-GIS-Entwicklung durchführen möchte?
Eine Fähigkeit / Technologie pro Antwort bitte.
Welche Technologien und Fähigkeiten sollte jemand erwerben, der eine Web-GIS-Entwicklung durchführen möchte?
Eine Fähigkeit / Technologie pro Antwort bitte.
Antworten:
Ich kann Ihnen von meinen Erfahrungen erzählen, die ich als einfacher Geograf gesammelt habe, als ich versuchte, mit GIS-Produkten räumliche Analysen durchzuführen.
Wie gesagt, ich bin Geograf und habe von Anfang an als Benutzer mit GIS gearbeitet. Danach begann ich zu erforschen, wie man mühsame Aufgaben automatisiert, die ich oft machen musste. Das kam aus Leidenschaft und nach drei Jahren bin ich bei einem multinationalen Softwarehaus beschäftigt, das mit vielen GIS-Systemen arbeitet und kundenspezifische Lösungen entwickelt.
Meine Schritte waren:
Lernen Sie GIS gut. Beginnen Sie das Programmieren nicht ohne Grundrecht. Projektionen und Transformationen, räumliche Analyse, Unterschiede zwischen Raster- und Vektormodell usw.
Erlernen der Datenbankgrundlagen: Einführung in Datenbanksysteme , Grundlagen von Datenbanksystemen . Die beiden Bücher sind etwas unterschiedlich. Die erste ist sehr theoretisch, die zweite praktischer.
SQL lernen. Dies ist eigentlich ein zweiter Teil zum ersten. Es wird Ihnen sehr helfen, wenn Sie anfangen, auf eine "schmale" Art und Weise zu denken. SQL ändert sich von Anbieter zu Anbieter. Ich kann Sie mit PostgreSQL empfehlen, dem Anbieter, der sich am meisten an den Standard hält. Wenn Sie bestimmte Dialekte lernen müssen, tun Sie dies später, wenn Sie sie tatsächlich benötigen.
Objekt orientierte Programmierung. Es scheint eine Herausforderung zu sein, aber es ist ziemlich einfach, wenn Sie die Grundlagen verstanden haben. Wählen Sie eine einfache Sprache, um dies zu tun. Python ist bei weitem das einfachste. Das Erlernen von Python ist ein hervorragender Ausgangspunkt. Es gibt quelloffene / kostenlose Python-Bücher wie Dive into Python . Interessante Optionen nach Python sind: .NET, Java und C / C ++.
Studienprogrammierung. Code lesen, Code schreiben. Geodatencode lesen. Schreiben Sie den Geodatencode. Studieren Sie die klassischen APIs: GEOS, JTS, GDAL, ArcObjects (wenn Sie ein ESRI-Fan sind - und das ist ein großes Plus auf dem Markt) usw.
- Nehmen Sie ein räumliches Problem und schreiben Sie Code, um es zu lösen. Ich kann nicht betonen, wie nützlich dies ist. Das wird Sie verrückt machen, aber es ist eine sehr gute Möglichkeit, um zu bestätigen, dass Sie die Programmierseite gelernt haben, und um sicherzustellen, dass Ihre georäumlichen Fähigkeiten auf dem neuesten Stand sind. In meinem Fall habe ich eine kleine PostgreSQL-Anwendung geschrieben, um Verkehrsunfälle zu geocodieren.
Lern weiter. OGC-Standards sind hier eine gute Wahl.
Sich in Datenbanken auskennen. Jeder GIS-Entwickler wird sie ausgiebig nutzen.
Vor allem:
Angenommen, Sie haben bereits die GIS-Seite (kartografische Prinzipien usw.) abgedeckt, würde ich zuerst einen Ausflug nach http://www.w3schools.com/ machen. - Durchlaufen Sie die Tutorials in HTML, Javascript, XML usw.
Dann haben Sie verschiedene Plattformen zur Auswahl. Ich bin ein bisschen voreingenommen gegenüber ESRI, und ich würde empfehlen, zunächst die APIs zu
testen: http://resources.arcgis.com/content/web/web-apis
- Wenn Sie die Konzepte / Beispiele durchgehen, erhalten Sie einen echten Eindruck davon, was passiert Sie können erreichen.
Das Herunterladen und Reverse Engineering der Codebeispiele für die Arbeit mit Ihren eigenen Services (vorausgesetzt, Sie haben eine Instanz von ArcGIS Server, andernfalls können Sie ESRIs-Beispielserver verwenden) ist eine gute Möglichkeit, dies zu lernen.
Es gibt auch viele Videos, schauen Sie sich diese yohren dev Konferenzvideos an Ich empfehle einen Überblick über die ArcGIS-APIs für JavaScript, bewährte Methoden zum Entwerfen effektiver Karten-Services, Neugestalten von Desktop-Anwendungen für das Web und Verwenden der ArcGIS Server REST-API.
Welche Webplattform würden Sie wählen? Ich würde es ignorieren, auf den WebADF (Java / NET) zu schauen, da dies auslaufen wird.
Wer sind Ihre Kunden? Welche Browser werden sie verwenden? Können sie Silverlight- oder Flash-Plugins installieren? Haben Sie irgendwelche IDEs, in denen Sie sich entwickeln müssen? Zum Beispiel ist Flex in FlashBuilder ($$) am besten geeignet, aber Sie können auch FlashDevelop verwenden, eine Open-Source-Alternative.
Fühlen Sie sich mit etablierten oder aufkommenden Technologien wohler? Risiken abwägen.
- .NET / Java gibt es schon seit Ewigkeiten. - Silverlight & Flex sind ziemlich neu und es wird diskutiert, ob HTML 5 diese Plattformen auslöschen wird
Sowohl Silverlight als auch Flex verfügen über mehr Interaktivität, da Javascript diese Lücke durch die Verwendung von Dojo.Framework ausgleichen kann.
Der große Unterschied in der Funktionalität zwischen Web-ADFs und Web-APIs besteht darin, dass ArcGIS-Web-APIs vollständig clientseitig sind.
Ich überlasse es jemand anderem, eine weniger ESRI-spezifische Antwort zu geben, aber die naheliegende Wahl ist, mit der Google Maps-API zu spielen. Es gibt viele Ressourcen / Tutorials, um dies zu lernen.
Javascript, HTML DOM, CSS, HTTP
Wenn Sie diese beherrschen, können Sie alles im Web tun. Das Hinzufügen von netten APIs wie SVG macht es vielleicht einfacher und Ihre Webanwendungen netter, aber IMO werden Sie nie in der Lage sein, die vier oben aufgeführten zu umgehen.
Angenommen, Sie haben es geschafft, Ihre räumliche Datenbank und Ihren Kartenserver zu sortieren und Ihre Kenntnisse in HTML, CSS und JavaScript aufzufrischen. Dann könnten Sie anfangen, an Client-Bibliotheken zu basteln, die Kartenkomponenten im Webbrowser des Benutzers verbrauchen und anzeigen.
OpenLayers scheint die mit Abstand am häufigsten referenzierte und genutzte Bibliothek zu sein. Es hat eine ziemlich gute Dokumentation und Beispiele, und Sie können hier zum Beispiel einige Tutorials finden . BostonGIS- Seiten sind auch hier für Sie nützlich, nicht nur für OpenLayers-Inhalte.
Abhängig von Ihrem Wissen / Ihrer Lernbereitschaft ist Python MapFish auch eine sehr anmutige Lösung. Sie können auch in GeoDjango eintauchen , aber ich kann selbst nicht viel zu dieser Lösung sagen .
Alternativ können Sie sich die OSGeo- Web-Mapping-Lösungen ansehen , sich an Flash wenden oder kommerzielle Anwendungen wie ESRI-Web-APIs verwenden .
Ich stimme Adam zu, dass räumliche DB und SQL ein Ausgangspunkt sein sollten.
Danach lohnt es sich möglicherweise, sich die zweite Ebene Ihres zukünftigen Web- Geostacks anzusehen . Sie benötigen etwas, das als Brücke fungiert, über die Ihre Daten von der räumlichen Datenbank zum Client im Browser Ihrer Benutzer übertragen werden.
Stellen Sie sicher, dass Sie die WFS- und WMS- Konzepte verstehen .
Installieren und spielen Sie lokal mit Ihrem eigenen Server. Zwei bekannte Projekte der Open Source Geospatial Foundation sind GeoServer und MapServer . QGIS MapServer könnte auch einen Blick wert sein. Ein ArcGIS-Server wäre hier [kostspielig!].
Sobald Sie diesen Teil aussortiert haben, können Sie möglicherweise mit Client-Bibliotheken spielen.
Mapnik oder ein anderes Karten-Rendering-Tool zum Erstellen von Kartenkacheln.
Fast jeder GIS-Webentwickler müsste Karten-Rendering-Tools verwenden oder zumindest die grundlegenden Konzepte von Layern und Kacheln verstehen.
Kennen Sie Ihr Server-Betriebssystem, Ihren Webserver (IIS, Apache, was auch immer) und wissen Sie, wie Sie Ihre Daten schützen können - auch wenn jemand alles für Sie erledigt.
Sie können meinen Kurs (https://www.e-education.psu.edu/geog585/) durcharbeiten, der (meiner Meinung nach) eine gute Einführung bietet und Sie zum Laufen bringen sollte.
Ich kann Georgs vorletzten Kommentar nicht genug betonen. Wählen Sie ein für Sie interessantes Geo- und / oder Webproblem aus und informieren Sie sich bei der Lösung über die erforderlichen Technologien.
Wenn Sie sich die Zeit nehmen, sich in allen der oben aufgeführten Bereiche zu qualifizieren, wird es für immer dauern, bis Sie tatsächlich mit dem Erstellen eines Projekts beginnen, das Sie an Ihrem Juckreiz kratzt.
Ich würde vorschlagen, zunächst eine App mit OpenLayers zu erstellen, um App-Maps-Daten von einigen vorhandenen Datendiensten zu erstellen. Anschließend können Sie Ihre eigenen Datenquellen oder Dienste erstellen. Wenn Sie sich an die FLOSS-Technologien halten, können Sie Ihre Apps überall erstellen und verwenden, ohne dass Lizenzkosten anfallen.