What technologies and skill sets should one who wants to do web GIS development study/acquire?
One skill/technology per answer please.
|
What technologies and skill sets should one who wants to do web GIS development study/acquire? One skill/technology per answer please. |
|||||||||||||
|
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
|
I can tell you about my experience, which started as a simple geographer, trying to use GIS products to do spatial analysis. As I said, I'm a geographer, and from the beginning in college I started working with GIS as a user. After that, I started to research on how to automate tedious tasks I had to do often. That came as passion, and after 3 three years, I'm employed by a multinational software house, that works with many GIS systems and developing custom solutions. My steps were:
|
|||
|
|
|
Assuming you already have the GIS side of things covered (cartographic principles, etc), I would first take a trip to http://www.w3schools.com/ - Run through the tutorials in HTML, Javascript, XML, etc Then you have a number of different platforms to choose from.
I am a bit biased towards ESRI, and I would recommend starting off by playing about the APIs
http://resources.arcgis.com/content/web/web-apis
- Running through the concepts/samples gives you a real sense of what you can achieve. There is also plenty of videos, take a look at this years dev conference videos Id recommend An Overview of the ArcGIS APIs for JavaScript, Best Practices for Designing Effective Map Services, Redesigning Desktop Applications for the Web and Using the ArcGIS Server REST API. Which web platform would you choose? Id ignore looking at the WebADF (Java/NET) as this is going to get phased out. Who are your clients? what browsers will they be using? Can they install Silverlight or Flash plugins? Do you have any IDEs to develop in? e.g Flex is best in FlashBuilder ($$) but you could also use FlashDevelop which is an open source alternative. Are you more comfortable with established technologies or emerging technologies?
Weigh up the risks. Both Silverlight and Flex have more interactivity out-of-the box, where as Javascript makes up for this gap by relying on the Dojo.Framework. The big difference in functionality between Web ADFs and Web APIs is the fact that ArcGIS Web APIs are entirely client-side. I will leave someone else to give a less-ESRI specific answer, but the obvious choice is to start having a play with the Google Maps API - There are plenty of resources/tutorials for learning this. |
|||||||
|
|
Javascript, HTML DOM, CSS, HTTP If you master these, you can do anything on the web. Adding in nice APIs like SVG will maybe make it easier and your web applications nicer, but IMO you'll never be able to quite get around the four listed above. |
|||||||||
|
|
Know your way around databases. Any GIS developer will use them extensively. Most notably:
|
|||||||||||||
|
|
Mapnik or any other map rendering tool for creating map tiles. Almost any GIS web developer would need to use map rendering tools, or at least understand the basic concepts of layers and tiles. |
|||
|
|
I agree with Adam that spatial DB and SQL should be a starting point. After that it might be worth looking at the second tier of your future web geostack. You will need something to act as a bridge 'serving' your data from spatial DB to the client in your users' browser. Make sure you understand WFS and WMS concepts. Install and start playing locally with your own server. Two well known projects embraced by Open Source Geospatial Foundation are GeoServer and MapServer. QGIS mapserver might be worth a look as well. ArcGIS server would be [costly!] commercial equivalent here. Once you sort out this part you might start playing with client libraries. |
||||
|
|
|
Assuming that you managed to sort out your spatial DB and map server [described in other answers here] and brushed up your knowledge of HTML, CSS and JavaScript you might start tinkering with client libraries that will consume and display map components inside user's web browser. OpenLayers seems to be by far the most referenced and used library. It has pretty good documentation and examples, and you can find some tutorials, for example here. BostonGIS pages will be useful for you here as well, not only for OpenLayers stuff. Depending on your knowledge / willingness to learn Python MapFish is very graceful solution as well. Or you can dive into GeoDjango, however I cannot comment much on this solution myself. Alternatively you could look at ther OSGeo web mapping solutions, turn to Flash, or use something commercial like ESRI Web APIs. |
|||
|
|
|
I can't emphasize George's second to the last comment enough. Pick a geospatial and/or Web problem that interests you and learn about the required technologies as you solve it. If you take the time to become proficient in all of the areas listed above, it will be forever before you actually start building a project that scratches your itch. I would suggest starting out with building an app using OpenLayers to build an app maps data from some existing data services. You could then move on to creating your own data sources or services. If you stick with the FLOSS technologies, you will be able to build and use your apps anywhere without license costs an issues. |
|||
|
|
|
Know your server OS, your web server (IIS, Apache, whatever) and how to secure your stuff - even if someone is doing it all for you. |
|||
|
|
|
You can work through my course (https://www.e-education.psu.edu/geog585/) which (I think) gives a good introduction and should get you up and running. |
|||
|
|