Quelles technologies et quels ensembles de compétences faut-il étudier et acquérir?
Une compétence / technologie par réponse s'il vous plaît.
Quelles technologies et quels ensembles de compétences faut-il étudier et acquérir?
Une compétence / technologie par réponse s'il vous plaît.
Réponses:
Je peux vous parler de mon expérience, qui a commencé comme un simple géographe, en essayant d'utiliser des produits SIG pour faire une analyse spatiale.
Comme je l'ai dit, je suis géographe et depuis le début de mes études, j'ai commencé à travailler avec le SIG en tant qu'utilisateur. Après cela, j'ai commencé à rechercher comment automatiser les tâches fastidieuses que je devais faire souvent. C'est venu comme une passion, et après 3 trois ans, je suis employé par une maison multinationale de logiciels, qui travaille avec de nombreux systèmes SIG et développe des solutions personnalisées.
Mes étapes ont été:
Apprenez bien le SIG. Ne commencez pas à apprendre la programmation sans avoir le droit fondamental. Projections et transformations, analyse spatiale, différences entre les modèles raster et vectoriel, etc.
Apprenez les bases de la base de données: Introduction aux systèmes de base de données , Fondamentaux des systèmes de base de données . Les deux livres sont un peu différents. Le premier est lourd de théorie, le second adopte une approche plus pratique.
Apprenez SQL. Il s'agit en fait d'une deuxième partie de la première. Cela vous aidera beaucoup si vous commencez à penser de manière "carrée". SQL change d'un fournisseur à l'autre. Je peux vous recommander avec PostgreSQL, qui est le fournisseur qui suit le plus le standard. Si vous devez apprendre des dialectes spécifiques, faites-le plus tard, lorsque vous en aurez réellement besoin.
Programmation orientée objet. Cela semble un défi, mais c'est assez facile une fois que vous maîtrisez les bases. Choisissez une langue facile pour le faire. Python est de loin le plus simple. L'apprentissage de Python est un excellent point de départ. Il existe des livres Python open source / gratuits, comme Dive into Python . Après Python, les choix intéressants sont: .NET, Java et C / C ++.
Étudier la programmation. Lire du code, écrire du code. Lisez le code géospatial. Écrivez le code géospatial. Étudiez les API classiques: GEOS, JTS, GDAL, ArcObjects (si vous êtes un fan d'ESRI - et c'est un gros plus sur le marché), etc.
- Prendre un problème géospatial et écrire du code pour le résoudre. Je ne peux pas souligner à quel point cela est utile. Cela vous rendra fou, mais c'est un très bon moyen de confirmer que vous avez appris le côté programmation et de vous assurer que vos compétences géospatiales sont à jour. Dans mon cas, j'ai écrit une petite application PostgreSQL pour géocoder les accidents de la circulation.
Continuez à étudier. Les normes OGC sont un bon choix ici.
Connaissez votre chemin dans les bases de données. Tout développeur SIG les utilisera largement.
Notamment:
En supposant que vous avez déjà couvert le côté SIG (principes cartographiques, etc.), je voudrais d'abord faire un voyage sur http://www.w3schools.com/ - Parcourez les didacticiels en HTML, Javascript, XML, etc.
Ensuite, vous avez le choix entre plusieurs plates-formes. Je suis un peu biaisé envers ESRI, et je recommanderais de commencer par jouer sur les API
http://resources.arcgis.com/content/web/web-apis
- Parcourir les concepts / exemples vous donne une vraie idée de ce que vous pouvez réaliser.
Je trouve que le téléchargement des exemples de code et leur rétro-ingénierie pour qu'ils fonctionnent avec vos propres services (en supposant que vous ayez une instance d'ArcGIS Server, sinon vous pouvez utiliser des exemples de serveurs ESRI) est un bon moyen d'apprendre.
Il y a aussi beaucoup de vidéos, jetez un œil à ces vidéos de conférence de développement .
Quelle plateforme Web choisiriez-vous? J'ignore de regarder le WebADF (Java / NET) car cela va être éliminé progressivement.
Quels sont vos clients? quels navigateurs utiliseront-ils? Peuvent-ils installer des plugins Silverlight ou Flash? Avez-vous des IDE à développer? Par exemple, Flex est le meilleur dans FlashBuilder ($$) mais vous pouvez également utiliser FlashDevelop qui est une alternative open source.
Êtes-vous plus à l'aise avec les technologies établies ou les technologies émergentes? Pesez les risques.
- .NET / Java existe depuis des siècles - Silverlight et Flex sont assez nouveaux et il y a un débat sur la question de savoir si HTML 5 effacera ces plateformes
Silverlight et Flex ont tous deux plus d'interactivité, où Javascript compense cet écart en s'appuyant sur Dojo.Framework.
La grande différence de fonctionnalité entre les ADF Web et les API Web est le fait que les API Web ArcGIS sont entièrement côté client.
Je laisserai quelqu'un d'autre pour donner une réponse moins ESRI, mais le choix évident est de commencer à jouer avec l' API Google Maps - Il y a beaucoup de ressources / tutoriels pour apprendre cela.
Javascript, HTML DOM, CSS, HTTP
Si vous les maîtrisez, vous pouvez tout faire sur le Web. L'ajout de belles API comme SVG rendra peut-être plus facile et vos applications Web plus agréables, mais IMO vous ne pourrez jamais tout à fait contourner les quatre énumérés ci-dessus.
En supposant que vous ayez réussi à trier votre base de données spatiale et votre serveur de cartes [décrit dans d'autres réponses ici] et amélioré vos connaissances en HTML, CSS et JavaScript, vous pourriez commencer à bricoler avec les bibliothèques clientes qui consommeront et afficheront les composants de carte dans le navigateur Web de l'utilisateur.
OpenLayers semble être de loin la bibliothèque la plus référencée et utilisée. Il a une très bonne documentation et des exemples, et vous pouvez trouver des tutoriels, par exemple ici . Les pages BostonGIS vous seront également utiles ici, pas seulement pour les trucs OpenLayers.
En fonction de vos connaissances / volonté d'apprendre Python MapFish est également une solution très gracieuse. Ou vous pouvez plonger dans GeoDjango , mais je ne peux pas trop commenter cette solution moi-même.
Vous pouvez également consulter les autres solutions de cartographie Web OSGeo , vous tourner vers Flash ou utiliser quelque chose de commercial comme les API Web ESRI .
Je suis d'accord avec Adam que la base de données spatiale et SQL devraient être un point de départ.
Après cela, il pourrait être utile d'examiner le deuxième niveau de votre future géostack Web . Vous aurez besoin de quelque chose pour agir comme un pont «servant» vos données de la base de données spatiale au client dans le navigateur de vos utilisateurs.
Assurez-vous de bien comprendre les concepts WFS et WMS .
Installez et commencez à jouer localement avec votre propre serveur. GeoServer et MapServer sont deux projets bien connus adoptés par l' Open Source Geospatial Foundation . Le serveur de carte QGIS pourrait également valoir le coup d'œil. Le serveur ArcGIS serait ici l'équivalent commercial [coûteux!].
Une fois que vous avez trié cette partie, vous pouvez commencer à jouer avec les bibliothèques clientes.
Mapnik ou tout autre outil de rendu de carte pour créer des tuiles de carte.
Presque n'importe quel développeur Web SIG devrait utiliser des outils de rendu de carte ou au moins comprendre les concepts de base des couches et des tuiles.
Connaissez le système d'exploitation de votre serveur, votre serveur Web (IIS, Apache, peu importe) et comment sécuriser vos données, même si quelqu'un fait tout pour vous.
Vous pouvez suivre mon cours (https://www.e-education.psu.edu/geog585/) qui (je pense) donne une bonne introduction et devrait vous permettre d'être opérationnel.
Je ne saurais trop insister sur l'avant-dernier commentaire de George. Choisissez un problème géospatial et / ou Web qui vous intéresse et découvrez les technologies requises au fur et à mesure que vous le résolvez.
Si vous prenez le temps de devenir compétent dans tous les domaines énumérés ci-dessus, il vous faudra une éternité avant de commencer à construire un projet qui égratignera vos démangeaisons.
Je suggérerais de commencer par créer une application à l'aide d'OpenLayers pour créer une application mappant des données à partir de certains services de données existants. Vous pouvez ensuite passer à la création de vos propres sources de données ou services. Si vous vous en tenez aux technologies FLOSS, vous serez en mesure de créer et d'utiliser vos applications n'importe où sans que la licence ne coûte de problèmes.