You are here:GeoTux»Geo-Foros»MapWindow ocx - Selección de polígonos con SQL

Estadísticas

Invitados: 114
Usuarios registrados: 3237
Usuarios en línea:
-
Registrados hoy:
-

Registro

Redifusión (RSS)

Blogs y Noticias:
Recibe las actualizaciones en Geo-Noticias y Geo-Blogs

Recibir por e-mail
Recibir Geo-Noticias y Geo-Blogs por e-mail

¿Qué es esto?

Welcome, Guest
Username Password: Remember me

MapWindow ocx - Selección de polígonos con SQL
(1 viewing) (1) Guest
  • Page:
  • 1

TOPIC: MapWindow ocx - Selección de polígonos con SQL

MapWindow ocx - Selección de polígonos con SQL 28 Апр 2010 11:55 #363

  • Juanra
  • OFFLINE
  • Visitante casual
  • Posts: 12
  • Karma: 0
Hola,

Estoy desarrollando una aplicación de escritorio con VB.Net y el control de MapWindow.

Tengo, entre otros shapefiles uno que contiene mas de 500000 elementos de tipo polígono.
Mi intención es hacer consultas sobre este shapefile filtrando por atributos y mostrando en el visor sólo los que me interesen.

El problema es que la forma que conozco de seleccionar varios elementos de un shapefile implica recorrer todos los registros e ir añadiendo a un Array los que cumplan cierta condición para luego poder identificarlos, colorearlos...

Este método es viable para shapefiles de no muchos elementos pero ya os digo que con mas de 500000 como es mi caso se hace eterno.

¿ Se puede realizar una consulta SQL sobre un shapefile ?
¿ Alguna otra solución ?

Muchas gracias y
¡ Saludos a todos !

Re: MapWindow ocx - Selección de polígonos con SQL 28 Апр 2010 18:38 #364

  • tuxman
  • OFFLINE
  • Vive aquí
  • Posts: 285
  • Karma: 6
Ya miraste esto?

Filtro por atributos.

Re: MapWindow ocx - Selección de polígonos con SQL 29 Апр 2010 05:02 #365

  • Juanra
  • OFFLINE
  • Visitante casual
  • Posts: 12
  • Karma: 0
Si, pero no me soluciona el problema porque en el procedimiento CargarValoresCampo el primer bucle For recorre todos los elementos del Shapefile.
Imagina que el Shapefile contiene 500000 elementos, el tiempo de ejecución se dispara.

¿ No existe alguna forma de a un Shapefile realizarle una consulta SQL y que te devuelva en un array los índices de los elementos ?


Gracias por responder.
Saludos
Last Edit: 29 Апр 2010 05:10 by Juanra.

Re: MapWindow ocx - Selección de polígonos con SQL 29 Апр 2010 10:47 #366

  • tuxman
  • OFFLINE
  • Vive aquí
  • Posts: 285
  • Karma: 6
Fíjate que el método CargarValoresCampo es netamente de interfaz. Lo que hace es cargar a un ComboBox los diferentes valores que existen en la tabla del Shapefile, para un campo determinado.

En tu caso podrías prescindir de él y simplemente usar BtnAceptarClick que es donde realmente se hace la selección.

Con respecto a lo de SQL, no conozco que exista algo así. En donde si es posible es en SpatiaLite, incluso leyendo Shapefiles, pero hasta donde entiendo, en MapWindow solo está la propuesta de soportarlo.

Por cierto, deberías considerar una base de datos, así optimizarás las consultas sobre tus datos puesto que son tan grandes.

No olvides que tienes a disposición el código de MapWindow GIS, si ves algo implementado allí puedes tomarlo e implementarlo en tu aplicación MapWinGIS.

Saludos.

Re: MapWindow ocx - Selección de polígonos con SQL 30 Апр 2010 07:27 #367

  • Juanra
  • OFFLINE
  • Visitante casual
  • Posts: 12
  • Karma: 0
Hola,

Pues voy a seguir tu consejo y voy a volcar toda la información del shapefile en una base de datos de oracle.

De esta forma podré realizar cualquier consulta SQL sobre los datos obteniendo el index de los shapes y posteriormente mostrarlos en el control de Mapwindow.

Muchas gracias por la ayuda.
Saludos

Re: MapWindow ocx - Selección de polígonos con SQL 30 Апр 2010 09:35 #368

  • tuxman
  • OFFLINE
  • Vive aquí
  • Posts: 285
  • Karma: 6
Bien!, aunque personalmente te recomendaría PostgreSQL para ello.

Incluso podrías pensar en SpatiaLite y los resultados serían buenos.

Re: MapWindow ocx - Selección de polígonos con SQL 05 Май 2010 11:09 #369

  • Juanra
  • OFFLINE
  • Visitante casual
  • Posts: 12
  • Karma: 0
Hola de nuevo,

Me he estado informando sobre PostgreSQL, PostGis, MapServer y demás y estoy un poco perdido.

Mi intención es desarrollar una aplicación de escritorio que administre las parcelas de regadío de una determinada zona.

Dispongo de:
- Varios archivos shapefile (Parcelas, Provincias, Municipios,...)
- Información alfanumérica de datos sobre las parcelas (Propietario, superficie, cultivo, ...) Esta información está almacenada en una base de datos Oracle.

La finalidad de la aplicación es que un usuario acceda a traves de un visor a una parcela en concreto o un grupo de parcelas y por medio de varios formularios modifique los datos relativos a esta (que se guardarán en la BD de Oracle ya creada)
Posteriormente me interesaría poder crear mapas temáticos (por tipos de cultivos, parcelas regadas, ...)

Mis dudas son:
1. ¿ Podrías aconsejarme que lenguaje utilizar para desarrollar esta aplicación ? (Conozco vb.net y Qt)
2. Creo que PostgreSQL está mas pensado para aplicaciones web. ¿ Que ocx me recomiendas para una aplicación de escritorio que se conecte a PostgreSQL ?

Un saludo y muchas gracias

Re: MapWindow ocx - Selección de polígonos con SQL 05 Май 2010 20:46 #370

  • tuxman
  • OFFLINE
  • Vive aquí
  • Posts: 285
  • Karma: 6
Qt no es un lenguaje, es un framework. Puedes usar la API para Python de QGIS (PyQGIS) al mismo tiempo que usas PyQt4 (los bindings de Qt para Python).

PostgreSQL lo puedes usar tanto en escritorio como en web. Como te he recomendado agregar tus datos geográficos a una base de datos tendrías que usar además PostGIS. MapWinGIS no puede conectarse (hasta donde se) a PostGIS, por lo que te recomiendo que construyas la aplicación en otro lenguaje (si, Python).

Hay otra alternativa en .Net que es SharpMap, con sus librerías si puedes conectarte a PostGIS. Tu decides.

Saludos.
  • Page:
  • 1
Time to create page: 0.52 seconds
 

¿Dónde nos leen?

Usuario aleatorio

Últimos Geo-Foros

No posts to display.

Últimos comentarios