sábado, 18 de diciembre de 2010

Postgres y MapServer

GENERALIDADES POSTGIS

ž  PostGIS: Es una extensión al sistema de base de datos objeto-relacional PostgreSQL.
ž  Permite el uso de objetos GIS(Geographic information systems).
ž  PostGIS incluye soporte para índices GiST basados en R-Tree, y funciones básicas para el análisis de objetos GIS.
ž  Esta creado por Refractions Research Inc, como un proyecto de investigación de tecnologías de bases de datos espaciales. Esta publicado bajo licencia GNU.
ž  Con PostGIS podemos usar todos los objetos que aparecen en la especificación OpenGIS
ž  como puntos, lineas, polígonos, multilíneas, multipuntos, y colecciones geométricas.

OBJETOS GIS

ž  PostGIS: Es una extensión al sistema de base de datos objeto-relacional PostgreSQL.
ž  Permite el uso de objetos GIS(Geographic information systems).
ž  PostGIS incluye soporte para índices GiST basados en R-Tree, y funciones básicas para el análisis de objetos GIS.
ž  Esta creado por Refractions Research Inc, como un proyecto de investigación de tecnologías de bases de datos espaciales. Esta publicado bajo licencia GNU.
ž  Con PostGIS podemos usar todos los objetos que aparecen en la especificación OpenGIS
ž  como puntos, lineas, polígonos, multilíneas, multipuntos, y colecciones geométricas.

CREACION DE TABLA ESPACIAL

Para crear una tabla con datos espaciales realizamos dos pasos:
  1. Creamos una tabla no espacial.
Ejemplo: CREATE TABLE CALLES_GEOM(ID int4,NAME varchar(25))
  1. Añadimos una columna(campo) espacial a la tabla usando la función
AddGeometryColumn de OpenGIS.
AddGeometryColumn(<db_name>,<table_name>,<column_name>,<srid>,<type>,<dimension>)
Ejemplo:
SELECT AddGeometryColumn ( 'calles_db', 'calles_geom', 'geom', 423, 'LINESTRING',2 )

MAPSERVER Y POSTGRES

Hoy en día todo mundo está interesado en relacionar las actividades comerciales, sociales etc. con los sistemas de posicionamiento global GPS, una forma sencilla y sobre todo economía es usar MAPSERVER ya que es gratuita!
MapServer es un entorno de desarrollo en código abierto (Open Source Initiative) para la creación de aplicaciones SIG en Internet/Intranet con el fin de visualizar, consultar y analizar información geográfica a través de la red mediante la tecnología Internet Map Server (IMS).



Algo muy importante es definir el sistema de coordenadas o SRID que utiliza cada país. Si es para el salvador siga los siguientes pasos.


1.Abre el pgAmdin 3 y en la tabla de su bd llamada spatial_ref_sys


inserte un nuevo registro mediante este sql:

INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values ( 96796, 'sr-org', 96796, '+proj=lcc +lat_1=14.25 +lat_2=13.3166667 +lat_0=13.7833333 +lon_0=-89 +x_0=500000 +y_0=295809.184 +ellps=clrk66 +datum=NAD27 +units=m +no_defs ', 'PROJCS["NAD27 / El Salvador",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982138982,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["latitude_of_origin",13.7833333],PARAMETER["central_meridian",-89],PARAMETER["scale_factor",0.99989906],PARAMETER["false_easting",500000],PARAMETER["false_northing",295809.184],PARAMETER["standard_parallel_1",14.25],PARAMETER["standard_parallel_2",13.3166667],AUTHORITY["EPSG","32062"],AXIS["X",EAST],AXIS["Y",NORTH]]');



Una vez hecho esto,


2. Cuando ud. cree el campo espacial para su tabla espacial usando

SELECT AddGeometryColumn('la_bd','nomtabla','campoespacial','-1','POINT',2);
asegurese de colocar el srid(parametro q va despues del campoespacial) = -1

luego de eso en el archivo .map coloque estas lineas antes del primer layer.

PROJECTION


"proj=lcc"
"lat_1=14.25"
"lat_2=13.3166667"
"lat_0=13.7833333"
"lon_0=-89"
"x_0=500000"
"y_0=295809.184"
"ellps=clrk66"
"units=m"
"no_defs"

END


3. Por ultimo en el layer del archivo map donde está la capa de los puntos obtenidos de postgresql coloque esta linea


PROJECTION

"init=epsg:4326"
END


Esta es la proyeccion para el sistema de coordenadas wgs84 q se ocupa para El Salvador.

No hay comentarios:

Publicar un comentario