Conjuntos de habilidades de desarrollo SIG web [cerrado]


12

¿Qué tecnologías y conjuntos de habilidades debería alguien que quiere estudiar / adquirir desarrollo de SIG web?

Una habilidad / tecnología por respuesta, por favor.


44
Hable sobre una pregunta amplia ... ¿puede reducirla a una pila de software específica? Esri? FOSS? ¿Solo buscas hacer mashups de datos de google / point?
Derek Swingley, el

Culpa mía. ESRI o FOSS, ¿no es posible tener ambos? Algo más complejo que el mashups de puntos, espero. Suficientes habilidades para hacer algo como esto. opengeohost.com/maps/stlawrence
RK

1
Gran pregunta Tengamos una habilidad por respuesta.
Adam Matan

Gracias. Gran idea. ¿Debo publicar eso en la pregunta? Me acabo de dar cuenta de que la pregunta puede ser amplia. ¿Sería mejor como wiki comunitario?
RK

Respuestas:


17

Puedo contarles sobre mi experiencia, que comenzó como un geógrafo simple, tratando de usar productos SIG para hacer análisis espacial.

Como dije, soy geógrafo, y desde el principio en la universidad comencé a trabajar con GIS como usuario. Después de eso, comencé a investigar cómo automatizar tareas tediosas que tenía que hacer a menudo. Eso fue una pasión, y después de 3 tres años, soy empleado de una empresa de software multinacional, que trabaja con muchos sistemas SIG y desarrollando soluciones personalizadas.

Mis pasos fueron:

  • Aprende bien los SIG. No comiences a aprender programación sin tener el derecho fundamental. Proyecciones y transformaciones, análisis espacial, diferencias entre el modelo ráster y vectorial, etc.

  • Aprenda los fundamentos de la base de datos: Introducción a los sistemas de bases de datos , fundamentos de los sistemas de bases de datos . Los dos libros son un poco diferentes. El primero es pesado en teoría, el segundo tiene un enfoque más práctico.

  • Aprende SQL. Esta es en realidad una segunda parte de la primera. Te ayudará mucho si comienzas a pensar de una manera "sqlish". SQL cambia de proveedor a proveedor. Te puedo recomendar con PostgreSQL, que es el proveedor que más sigue el estándar. Si necesita aprender dialectos específicos, hágalo más tarde, cuando realmente lo necesite.

  • Programación orientada a objetos. Parece un desafío, pero es bastante fácil una vez que comprende los conceptos básicos. Elige un idioma fácil para hacerlo. Python es, con mucho, el más fácil. Aprender Python es un excelente punto de partida. Hay libros de Python de código abierto / gratuitos, como Dive into Python . Después de Python, las opciones interesantes son: .NET, Java y C / C ++.

  • Programación de estudio. Leer código, escribir código. Leer el código geoespacial. Escribe el código geoespacial. Estudie las API clásicas: GEOS, JTS, GDAL, ArcObjects (si es un fanático de ESRI, y es una gran ventaja en el mercado), etc.

    - Tome un problema geoespacial y escriba código para resolverlo. No puedo enfatizar lo útil que es esto. Esto lo volverá loco, pero es una muy buena manera de confirmar que aprendió el lado de la programación y asegurarse de que sus habilidades geoespaciales estén actualizadas. En mi caso, escribí una pequeña aplicación PostgreSQL para geocodificar accidentes de tráfico.

  • Sigue estudiando. Los estándares OGC son una buena opción aquí.


4

Conozca las bases de datos. Cualquier desarrollador de SIG los usará ampliamente.

Más destacado:

  • DBMS y el modelo relacional . Estos temas son cruciales para comprender los conceptos básicos del almacenamiento de datos.
  • Al menos una solución GIS DB . Prefiero PostGIS , pero también existe otra solución .
  • Buen conocimiento de SQL y GIS SQL : cómo extraer, insertar, ordenar y manipular datos de manera eficiente.
  • Compensaciones de DB clásicas : cómo afectan las diferentes operaciones a la memoria, el espacio en disco, la CPU y el uso de la red.
  • Indexación. Esto es lo suficientemente importante para una viñeta separada, porque es el DB Lacuna más común entre los principiantes.
  • Algunos conocimientos sobre agrupación y escalabilidad .
  • Conocimientos básicos de NOSQL .

Incluso si no está utilizando bases de datos, todavía está utilizando datos, y en general es una apuesta segura que SQL (o uno de sus primos) se utilizará para consultar los datos.
mwalker

Estoy de acuerdo en que todo lo anterior es bueno saber, pero ¿son los primeros de la lista en lo que respecta al desarrollo WEB?
Simon

¿Qué hay de CQL? ¿Es necesario también?
RK

1
@simon: la capacidad de base de datos insuficiente es uno de los problemas más comunes entre los desarrolladores de SIG. En mi humilde opinión, es una de las habilidades más importantes (junto con HTML / CSS, JavaScript y representación de mapas). @rk - CQL?
Adam Matan

Lenguaje de consulta común? Lo encontré una vez mientras trabajaba con GeoServer.
RK

3

Suponiendo que ya tiene cubierto el lado SIG de las cosas (principios cartográficos, etc.), primero haría un viaje a http://www.w3schools.com/ - Revise los tutoriales en HTML, Javascript, XML, etc.

Entonces tiene una serie de plataformas diferentes para elegir. Estoy un poco sesgado hacia ESRI, y recomendaría comenzar jugando sobre las API http://resources.arcgis.com/content/web/web-apis - Ejecutar los conceptos / muestras le da una idea real de lo que puedes lograrlo.
Encuentro que descargar los ejemplos de código y aplicarles ingeniería inversa para que funcionen con sus propios servicios (suponiendo que tenga una instancia de ArcGIS Server, de lo contrario puede usar servidores de ejemplo de ESRI) es una buena manera de aprender.

También hay muchos videos, eche un vistazo a los videos de la conferencia de desarrollo de este año. Recomendaría una descripción general de las API de ArcGIS para JavaScript, las mejores prácticas para diseñar servicios de mapas efectivos, rediseñar aplicaciones de escritorio para la web y usar la API REST de ArcGIS Server.

¿Qué plataforma web elegirías? Ignoraría mirar el WebADF (Java / NET) ya que esto se eliminará gradualmente.

Quienes son sus clientes ¿Qué navegadores usarán? ¿Pueden instalar complementos de Silverlight o Flash? ¿Tienes alguna IDE para desarrollar? por ejemplo, Flex es mejor en FlashBuilder ($$) pero también puede usar FlashDevelop, que es una alternativa de código abierto.

¿Te sientes más cómodo con las tecnologías establecidas o las tecnologías emergentes? Sopesa los riesgos.
- .NET / Java han existido durante siglos - Silverlight y Flex son bastante nuevos y hay un debate sobre si HTML 5 eliminará estas plataformas

Tanto Silverlight como Flex tienen más interactividad fuera de la caja, mientras que Javascript compensa esta brecha al confiar en el Dojo.Framework.

La gran diferencia en la funcionalidad entre los ADF web y las API web es el hecho de que las API web de ArcGIS son completamente del lado del cliente.

Dejaré a alguien más para dar una respuesta menos específica de ESRI, pero la opción obvia es comenzar a jugar con la API de Google Maps : hay muchos recursos / tutoriales para aprender esto.


Guau. Gracias por la descripción general: DI me inclino un poco más hacia FOSS, ya que estoy en un país del tercer mundo y los productos ESRI están fuera del alcance de la mayoría de las personas aquí.
RK

Tenga en cuenta que las API web de ArcGIS (y muchas otras) realizan la mayor parte de su procesamiento en el lado del cliente, pero todas dependen en gran medida de los servicios publicados y / o el procesamiento en el lado del servidor. Por lo tanto, si desea hacer mucho más que reunir los recursos existentes (por ejemplo, geoprocesamiento), puede que tenga que investigar las tecnologías del lado del servidor, o hacer una investigación considerable para descubrir cómo hacerlo en el lado del cliente.
mwalker

Célebre. Investigando el geo-stack abierto en este momento.
RK

3

Javascript, HTML DOM, CSS, HTTP

Si domina estos, puede hacer cualquier cosa en la web. Agregar APIs agradables como SVG quizás lo haga más fácil y sus aplicaciones web sean más agradables, pero en mi opinión, nunca podrá sortear las cuatro enumeradas anteriormente.


Javascript, HTML DOM, CSS, HTTP ¿Hay un orden particular en el que debería aprenderlos? :)
RK

2
Sugeriría el siguiente orden: HTML, CSS, HTTP, DOM, JavaScript, adicionalmente PHP y / o Python / Ruby para las secuencias de comandos del lado del servidor.
oscuro

3

Suponiendo que logró ordenar su DB espacial y el servidor de mapas [descrito en otras respuestas aquí] y repasó su conocimiento de HTML, CSS y JavaScript, puede comenzar a jugar con las bibliotecas del cliente que consumirán y mostrarán los componentes del mapa dentro del navegador web del usuario.

OpenLayers parece ser, con mucho, la biblioteca más referenciada y utilizada. Tiene bastante buena documentación y ejemplos, y puede encontrar algunos tutoriales, por ejemplo aquí . Las páginas de BostonGIS también serán útiles para usted aquí, no solo para cosas de OpenLayers.

Dependiendo de su conocimiento / voluntad de aprender, Python MapFish es una solución muy elegante también. O puede sumergirse en GeoDjango , sin embargo, no puedo comentar mucho sobre esta solución yo mismo.

Alternativamente, puede buscar otras soluciones de mapeo web OSGeo , recurrir a Flash o usar algo comercial como las API web de ESRI .


3

Estoy de acuerdo con Adam en que DB y SQL espacial deberían ser un punto de partida.

Después de eso, podría valer la pena mirar el segundo nivel de su futuro geoestack web . Necesitará algo que actúe como un puente que "sirva" sus datos desde la base de datos espacial al cliente en el navegador de sus usuarios.

Asegúrese de comprender los conceptos de WFS y WMS .

Instala y comienza a jugar localmente con tu propio servidor. Dos proyectos bien conocidos adoptados por Open Source Geospatial Foundation son GeoServer y MapServer . El servidor de mapas QGIS también podría valer la pena. El servidor ArcGIS sería [costoso!] Equivalente comercial aquí.

Una vez que resuelva esta parte, puede comenzar a jugar con las bibliotecas del cliente.


2

Mapnik o cualquier otra herramienta de representación de mapas para crear mosaicos de mapas.

Casi cualquier desarrollador web de SIG necesitaría usar herramientas de representación de mapas, o al menos comprender los conceptos básicos de capas y mosaicos.


Gracias. Creo que entiendo bien las capas y los azulejos. Es la parte de renderizado con la que tengo problemas.
RK

2

Conozca el sistema operativo de su servidor, su servidor web (IIS, Apache, lo que sea) y cómo proteger sus cosas, incluso si alguien lo está haciendo todo por usted.


2

Puede trabajar en mi curso (https://www.e-education.psu.edu/geog585/) que (creo) da una buena introducción y debería ponerlo en funcionamiento.


1

No puedo enfatizar lo suficiente el segundo comentario de George. Elija un problema geoespacial y / o web que le interese y conozca las tecnologías necesarias a medida que lo resuelve.

Si se toma el tiempo para dominar todas las áreas enumeradas anteriormente, pasará una eternidad antes de que realmente comience a construir un proyecto que se rasque la picazón.

Sugeriría comenzar con la creación de una aplicación usando OpenLayers para crear una aplicación de mapas de datos de algunos servicios de datos existentes. Luego puede pasar a crear sus propias fuentes de datos o servicios. Si te quedas con las tecnologías FLOSS, podrás construir y usar tus aplicaciones en cualquier lugar sin problemas de costos de licencia.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.