shp2pgsql: el programa no puede iniciarse porque falta libiconv~2.dll

Hola a todos.

¿Te sucede que al ejecutar la utilería de postgis shp2pgsql, en la consola ms-dos de windows, te manda el siguiente mensaje de error?

Esto sucede con algunas versiones superiores a postgresql/postgis 9.2; debido a que las librerías .dll que necesita este programita ya no están más en el directorio bin de la carpeta de instalación de postgresql.

Ahora se encuentran esos .dll dentro de directorio bin/postgisgui dentro de la misma carpeta de instalación de postgresql.

Para solucionar el error, basta con agregar a tu variable de ambiente PATH este directorio, abrir una nueva ventana de consola de ms-dos y volver a ejecutar desde ahí el comando.

¡A convertir shapefiles a postgresql/postgis!

 

¡Feliz año 2015!

La primera entrada del año para desearles que pasen un gran 2015 a todos mis seguidores y lectores.

Espero y este año generar más entradas útiles para ustedes. Por lo pronto los invito a inscribirse al curso en línea: “Infraestructuras de Datos Espaciales (IDE) y Geoportales” que está pronto a iniciar.

Selección_302

¡Éxito!

Como cargar capas PostGIS raster con QGIS 2.2

El plugin que servía para cargar capas raster PostGIS en las versiones anteriores a QGIS 2.X ya no existe en las versiones actuales de QGIS. Por el momento la forma de cargar capas raster PostGIS en QGIS 2.x es con el Administrador de BBDD:

Una vez que ya se hizo la conexión con la base de datos Postgresql/PostGIS se selecciona el menú “Base de Datos” > “Administrador de BBDD” > “Administrador de BBDD”. Una vez en el “Administrador de BBDD” se abre el nodo PostGIS y ahí se selecciona el nodo de la conexión y enseguida se abre el esquema de la Base de Datos donde se encuentran las capas raster a cargar. Aparecerá una lista capas tanto raster como vectoriales.

Existen dos formas de cargar la capa, una es arrastrando la capa raster de la lista del “Administrador de BBDD” al área del mapa de QGIS o dando botón derecho sobre la capa rater y seleccionando la opción “Añadir al lienzo” en el menú contextual que aparece.

Añadiento capa raster

¡Saludos!

 

Usos de la coordenada M en las bases de datos espaciales.

La coordenada M (measure – medida) puede representar una medida arbitraria almacenada dentro de la geometría (punto).

Por ejemplo puede representar la hora o tiempo en el que dicha geometría se encontraba en ese punto.

O puede representar el número de identificación de un fenómeno que ocurre en esa geometría o punto, por ejemplo, si se representa una carretera con una linea y en esa carretera hay teléfonos de emergencia, podemos incrustar en cada punto del vértice de esa linea el número de identificación de la caseta donde se encuentra el teléfono de emergencia.

Por ejemplo la función ST_LocateAlong de postgis te regresaría una colección de geometrías donde se encuentra la medida  que se le especifique:

 

En el ejemplo anterior le especificamos que nos regrese la colección de geometrías dentro de una geometría tipo  multilinestringm que contienen la medida “3”.

Esto se aplica mucho en “linear referencing”  (referenciación lineal). de hecho hay funciones en Postgis que hacen uso de esta coordenada M.

Puedes leer acerca de esas funciones en este apartado:

http://postgis.net/docs/manual-2.1/reference.html#Linear_Referencing

¡Saludos!

Instalando Postgresql 9.2 con Postgis 2.0.1 en Centos 6

Desgraciadamente los repositorios de CentOS 6.3 no están actualizados a las nuevas versiones de Postgresql. Pero no hay problema, siguiendo las instrucciones en http://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS20CentOS6pgdg será fácil instalarlo. Para otras distribuciones de Linux, les recomiendo este enlace.

Nueva versión de OpenGEO Suite

OpenGeo acaba de lanzar la versión 3.o de su software de servidor de mapas. Conoce todos los detalles aquí.

Problemas instalando OpenGeo Suite 2.3.3 for Linux en Centos 5.5

Problema:

Al seguir los pasos de instalación del OpenGeo Suite 2.3.3 for Linux Community Edition en mi servidor Centos 5.5, no instalaba correctamente. La base de datos postgresql no era instalada y por lo tanto, el software no funcionaba. Me instalaba paquetes de otras versiones como el pgadmin3 nativo y el postgis 1.3.

Solución:

Había olvidado que habia instalado el paquete yum-priorities, por lo tanto es necesario indicar la prioridad (priority) del reposotorio OpenGeo.repo. Puse la prioridad un numero menor al del rmpforge y una vez que desinstalé y reinstalé nuevamente el OpenGeo Suite el instalador funcionó sin problemas.

Saludos!

Leer campo tipo GEOMETRY de SQL Server Spatial desde .NET

Actualmente estoy trabajando con una aplicación de generación de Fichas Catastrales apoyado en imágenes oblicuas y necesitaba almacenar las coordenadas geográficas de las construcciones. Primeramente opté por utilizar shapefiles, pero ahora con la inclusión de los tipos Geometry y Geography en la versión 2008 del Sql Server, base de datos que incluí en el proyecto, tomé la decisión de usar esta nueva característica.
Anteriormente había trabajado en Bases de Datos Geográficas utilizando la propietaria de ESRI ArcSDE y la opensource POSTGIS con Postgresql. Al igual que Postgis y Oracle Spatial, esta según dicen cumple con los estándares que recomienda la OGC. Actualmente estoy utilizando Visual Basic .Net por su facilidad de uso para el desarrollo de la aplicación.
Otro desarrollo libre aplicado en este desarrollo es la libreria SharpMap, así que combino esta libreria con la libreria de tipos de Sql Server que permite manejar desde .Net los tipos de datos Geometry y Geography.
Aqui un ejemplo de como leer un campo Geometry de una tabla desde .Net y convertirlo a objetos SharpMap:

….
Imports SharpMap.Geometries ‘clases de SharpMap
Imports Microsoft.SqlServer.Types ‘clases de Sql Server
….
….
instruccion = “select  campo_geometry from tabla_geografia”
comando.CommandText = instruccion
Dim objGeometry as SqlGeometry tipo de datos de Sql Server
Dim objGeometriaSM As SharpMap.Geometries.Polygon
Dim registros As SqlDataReader = comando.ExecuteReader()
While registros.Read()
   objGeometria = CType(registros.GetValue(0), SqlGeometry) ‘lee campo.Geometry
   objGeometriaSM = New SharpMap.Geometries.Polygon ‘objeto polígono de Sharpmap
   objGeometriaSM = SharpMap.Geometries.Polygon.GeomFromWKB(objGeometria.STAsBinary().Buffer()) ‘convierte tipo geometry a poligono de Sharpmap
   ……
End While

Espero y les sea de ayuda.