Ensembles de compétences en développement SIG Web [fermé]

12

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.

RK
la source
4
Parlez d'une question générale ... pouvez-vous la réduire à une pile logicielle spécifique? Esri? FOSS? Vous cherchez juste à faire des mashups google / point data?
Derek Swingley
Ma faute. ESRI ou FOSS, n'est-il pas possible d'avoir les deux? Quelque chose de plus complexe que les mashups ponctuels, j'espère. Assez de compétences pour faire quelque chose comme ça. opengeohost.com/maps/stlawrence
RK
1
Grande question. Ayons une compétence par réponse.
Adam Matan
Merci. Bonne idée. Dois-je poster cela sur la question? Je viens de réaliser que la question pourrait être large. Serait-ce mieux en tant que wiki communautaire?
RK
problème simmilar: stackoverflow.com/questions/1054480/…
radek

Réponses:

17

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.

George Silva
la source
4

Connaissez votre chemin dans les bases de données. Tout développeur SIG les utilisera largement.

Notamment:

  • SGBD et le modèle relationnel . Ces sujets sont cruciaux pour comprendre les bases du stockage de données.
  • Au moins une solution GIS DB . Je préfère PostGIS , mais d' autres solutions existent également .
  • Bonne connaissance de SQL et SIG SQL : comment extraire, insérer, trier et manipuler efficacement des données.
  • Compromis DB classiques : comment les différentes opérations affectent-elles la mémoire, l'espace disque, le processeur et l'utilisation du réseau?
  • Indexage. C'est assez important pour une balle séparée, car c'est la DB Lacuna la plus courante parmi les débutants.
  • Quelques connaissances sur le clustering et l'évolutivité .
  • Connaissance de base de NOSQL .
Adam Matan
la source
Même si vous n'utilisez pas de bases de données, vous utilisez toujours des données - et généralement, il y a fort à parier que SQL (ou l'un de ses cousins) sera utilisé pour interroger les données.
mwalker
Je suis d'accord que toutes les choses ci-dessus sont bonnes à savoir, mais sont-elles en tête de liste en ce qui concerne le développement WEB?
Simon
Et le CQL? Est-ce aussi nécessaire?
RK
1
@simon - La capacité de base de données insuffisante est l'un des problèmes les plus courants chez les développeurs SIG. À mon humble avis, c'est l'une des compétences les plus importantes (avec HTML / CSS, JavaScript et le rendu de carte). @rk - CQL?
Adam Matan
Langage de requête commun? Je l'ai rencontré une fois en travaillant avec GeoServer.
RK
3

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.

Simon
la source
Sensationnel. Merci pour l'aperçu: DI penche un peu plus vers les logiciels libres mais comme je suis dans un pays du tiers monde et que les produits ESRI sont hors de portée de la plupart des gens ici.
RK
Notez que les API Web ArcGIS (et bien d'autres) effectuent la majeure partie de leur traitement côté client, mais elles dépendent toutes fortement des services publiés et / ou du traitement côté serveur. Donc, si vous voulez aller au-delà de l'assemblage des ressources existantes (par exemple le géotraitement), vous devrez peut-être enquêter sur les technologies côté serveur, ou faire des recherches approfondies pour comprendre comment le faire côté client.
mwalker
C'est noté. Enquêter sur la géo-pile ouverte dès maintenant.
RK
3

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.

mkadunc
la source
Javascript, HTML DOM, CSS, HTTP Existe-t-il un ordre particulier pour que je les apprenne? :)
RK
2
Je suggère l'ordre suivant: HTML, CSS, HTTP, DOM, JavaScript, en plus PHP et ou Python / Ruby pour les scripts côté serveur.
underdark
3

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 .

radek
la source
3

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.

radek
la source
2

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.

Adam Matan
la source
Merci. Je pense que je comprends bien les couches et les carreaux. C'est la partie de rendu qui me pose problème.
RK
2

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.

Chad Cooper
la source
2

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.

Ian Turton
la source
1

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.

DavidF
la source