¿Busca consejos sobre la hoja de ruta del paquete genérico de código abierto? [cerrado]

18

Solo quería pedir consejo a los gurús de GIS de código abierto en una pila recomendada para usar en mi proyecto previsto, ya que no entiendo completamente los límites de lo posible con la mayoría de los paquetes. Sé que puedo hacer lo que quiera con los distintos paquetes de ESRI, pero quiero que el mundo vea más barato y abierto. Confío en que puedo asumir cualquier desafío y aprender lo suficientemente bien como para hacer que un proyecto suceda, solo quiero evitar ir por el camino equivocado en primer lugar.

Visión de mi sitio: en términos de IU, ¡un sitio que no busca SIG! Algo más a lo largo de las líneas de whereis.com con todo (o casi todo) en cajas situadas sobre un mapa base. Los detalles no son importantes ahora, solo enfatizan que no hay capas GIS con casillas de verificación en un panel separado, etc. En términos de interacción del usuario, los usuarios registrados pueden crear características (como ubicaciones de bebederos, senderos para caminar, etc.) en la parte superior de la base mapear, y editar sus propias características. Si es posible, edita SOLO sus propias características que ellos crearon. Un mapa colaborativo, de verdad.

Todavía estoy principalmente en modo de investigación, jugando con varios paquetes, pero solo por el bien de la familiarización general y no de las pruebas reales (¡lo que requeriría aprenderlos en detalle primero!). PostGIS definitivamente parece ser el camino correcto a seguir como las bases de datos subyacentes, con Geoserver / Mapserver como middleware más probable. Openlayers será casi definitivamente un mapa resbaladizo, ya que me siento cómodo con él y conozco su poder.

Así que eso me lleva a dos cuestiones principales que requieren la mayor parte de los consejos:

1) ¿Cuál es la mejor interfaz de usuario de capa superior para un sitio como este?

Es una instancia personalizada de Django (o incluso Django-CMS), o simplemente una instancia reconstruida de GeoExt u otra biblioteca (no estoy seguro de que pueda hacer un inicio de sesión / registro / UI completo con él), un CMS diferente / framework (no, no drupal ni nada que limite!), o algo totalmente diferente?

2) ¿Es posible incluso que los usuarios registrados del sitio editen solo sus propias funciones?

Quiero evitar los lugares masivos de "graffiti" como OSM y otros proyectos de experiencia en colaboración. Parece por mi lectura y consejo previamente que Geoserver no puede tener autenticación de usuario de nivel de característica.

¿Puede Mapserver?

Ni siquiera sé si la población de usuarios de un sitio (desde un CMS o marco) puede vincularse directamente con geoserver / mapserver.

Si tal concepto no es posible con soluciones de código abierto, ¿hay otra forma de lograr ese objetivo?

¿Los usuarios autenticados editan una versión no publicada de la capa principal (para no estropear el original) y la combinan automáticamente con la versión publicada cada 24 horas mientras mantienen una copia de seguridad diaria del original?

Una especie de perdida sobre cómo lograr esta intención.

Y sí, también he visto GeoNode, pero solo quiero un mapa general (que sea sencillo) y su interfaz de usuario no es lo suficientemente interactiva (antes de entrar en GeoExplorer) o demasiado similar a GIS en GeoExplorer. Parece una solución demasiado enlatada para este proyecto.

Lamento ser tan abierto aquí y vago, pero espero poder comenzar por un camino en el que lo anterior es posible y no caer en la pared dentro de varios meses, solo para volver a empezar. otra vez porque la ruta # 1 nunca tuvo esa funcionalidad desde el principio!

Uno de los mejores ejemplos que puedo encontrar es el enlace . Sé que esto usa un folleto, pero no estoy seguro del marco subyacente y la base de datos. Los usuarios pueden crear / cargar sus propias funciones, pero no editar las de otros.

    
pregunta Jeremy 23.06.2012 - 18:01

4 respuestas

8

Ya que estoy construyendo algo similar en este momento, voy a decirte cómo lo estoy haciendo y puedes elegir cambiar lo que quieras de él por otra pieza.

Django (con GeoDjango ) es bastante bueno para esto como un marco básico para python (de nuevo, si eso es lo tuyo, puedes hacerlo en otro idioma).

Mi enfoque para las ediciones a nivel de usuario es similar a lo que describió CaptDragon. Estoy utilizando el marco django authentication . Para este proyecto, mis API se están creando usando El pastel sabroso de Django que ya tiene un marco que le permite crear las API de RESTful adecuadas con la autenticación tomada en consideración muy fácilmente.

Mi Mapserver (o Geoserver o lo que elija usar) nunca se expone directamente al mundo exterior (solo el servidor local tiene acceso a esos) ... todos los mosaicos se sirven utilizando un servidor de mosaicos ( geowebcache , tilecache , tilestache lo que sea).

No necesito mencionar Openlayers, ya que ya elegiste eso. Buena elección.

PostgreSQL / PostGIS fue otra obviedad. :)

Como una biblioteca de javascript, nunca puedes equivocarte con jQuery. Si va a permitir varias ediciones, puede beneficiarse de tener una estructura de sus objetos javascript usando algo como backbone.js . Tomar esto con un grano de sal. Algunas personas lo aman, otras lo odian.

Si no quieres que tu sitio se vea tan feo, hazte un favor y usa un marco css como Bootstrap o Compass o alternativa, por $ 20, solo compre uno en themeforest o wrapstrap (si va a abrir el código fuente, es posible que desee verlo) en la licencia si vas a comprarlo sin embargo). ¡Conectar uno de estos toma alrededor de un día y marca una gran diferencia en cómo se ve tu sitio!

Personalmente, he mirado Django-cms (y Pinax ) varias veces y nunca me puedo convencer de que valga la pena. Nunca me he arrepentido de esa decisión.

Ya que está seleccionando un proyecto que requerirá varias versiones de su esquema (cuanto más desarrolle, más cambiará), solo use south . ¡Ni siquiera lo dudes! En serio.

Eso es lo que usaría, pero lo bueno de Open Source es que puedes cambiar partes para satisfacer tus propias necesidades.

    
respondido por el Ragi Yaser Burhum 26.06.2012 - 19:11
6

Estoy usando una pila similar a la de Ragi Estoy cerca de la versión alfa de mi aplicación y en este punto parece que las opciones fueron correctas. Aquí está mi solución:

En el servidor:

  • Servidor Ubuntu + servidor web apache + tomache apache.
  • Postgresql + postgis como base de datos.
  • Geoserver, (en mi caso lo uso solo para rásteres).
  • Django Framework + Tastypie. Tastypie sirve todos los vectores a través de la API y los usuarios tienen permiso de 'por objeto'.
  • python-gsconfig para controlar geoserver desde python.
  • informes jasper para generar pdfs.
  • pyjasper para controlar los informes de jaspe de python.
  • Biblioteca geoestadística de alto rendimiento para interpolación.

En el cliente:

  • ExtJs 4 - > Eso es fantástico, extjs funciona muy bien con tastypie y tienes muchas cosas trabajando fuera de la caja, como ventanas y mesas. Comencé a usarlo en código puro, pero no, uso Sencha Architect 2, que me ayuda mucho.
  • OpenLayers - > Con dos métodos insertados, uno en un almacén extjs y otro en una capa de openlayers, se actualizan mutuamente sobre el cambio de datos.
respondido por el Pablo 27.06.2012 - 20:44
4

¿Es posible incluso que los usuarios registrados del sitio editen solo sus propias funciones?

Parece que esto es posible usando Cartaro. Se basa en Drupal (lo sé, no dijiste nada limitativo como Drupal, pero escúchame fuera!) y permite a los usuarios editar solo sus propias funciones, entre otras opciones. Aquí hay una captura de pantalla tomada de la página Personas cuando se registra como administrador, que muestra los tipos de permisos que se pueden configurar para los usuarios:

Además,CartaroseejecutaenPostGIS,GeoServeryOpenLayers,porloquepotencialmentepodríatenertodoloqueestásbuscando.

¿Cuáleslamejorinterfazdeusuariodecapasuperiorparaunsitiocomoeste?

Nosécuálesla"mejor" capa superior, pero parece que Cartaro podría proporcionar lo que estás buscando ya que Drupal tiene muchas opciones de interfaz de usuario. Parece que Cartaro tiene un desarrollo temprano (no conozco personalmente a nadie que lo esté usando), pero tiene potencial.

    
respondido por el Tanner 26.06.2012 - 18:30
3

Voy a abordar la pregunta # 2 Así es como yo soluciono el problema de permitir que los usuarios editen sus propios registros.

Creo mis propios servicios web RESTFUL o SOAP (a su elección) como UpdateUserRecord(string WKTLocation, string otherArg) que se vincula con el mecanismo de autenticación de su sitio web.

OpenLayers y PostGIS leen y escriben textos de texto conocido (WKT), así como GML y otros formatos estándar, pero personalmente uso WKT para transferir información de geometría desde mi aplicación, a través del servicio web y al PostGIS. DB.

También mis métodos web como UpdateUserRecord solo pueden ser llamados por un usuario de sesión autenticado. Se devuelve un 401 Unauthorized si alguien más intenta llamar a este servicio web. En mi caso, uso .NET y FormsAuthentication con la opción de autenticar usando OpenAuth2 (Google, Facebook, Twitter, etc.). Esto también se puede hacer en PHP, Java, etc.

Por lo tanto, puede crear métodos web que llamen directamente a la base de datos de PostGIS y actualizar o insertar registros como desee. Y así fue como lo hice.

Luego utilicé GeoServer para WFS, capacidades de consulta de WMS y facilidad para mostrar la información en el mapa donde proporcionaría un UserID si la consulta lo solicitase.

Espero que esto ayude.

    
respondido por el CaptDragon 26.06.2012 - 17:44