Beruflich Dokumente
Kultur Dokumente
Contenido
0.Intro 1.Bases de datos espaciales 2.PostGIS 3.Mapserver 4.Chameleon 5.Posibles ampliaciones del programador
Capas
En general, la informacin geogrfica en un SIG est distribuida en Capas de Informacin llamadas LAYERS
Vectoriales
Imgenes Raster
Imgenes Satelitales
Fotografa Area
Datos Vectoriales
PUNTO
Coordenadas planas (X,Y) Coordenadas geogrficas (Latitud, Longitud) Si 3D -> nueva coordenada: Altura Punto de inicio, Punto de fin Varios puntos (POLILNEA) Varios puntos que encierran un rea
LINEA
POLIGONO
gil Procesamiento Minimizar Error Menor Costo de Almacenamiento Operaciones conocidas (geometra)
Son DBMS: con capacidades especiales para poder trabajar eficientemente con datos espaciales A nivel lgico: proveen nuevos tipos: punto, lnea, polgono A nivel funcional: deben proveer las funciones de los GIS: interseccin, unin, etc. El JOIN: con datos espaciales debe ser redefinido A nivel fsico: proveen estructuras de datos optimizadas para almacenar e indexar datos espaciales.
Los datos espaciales y los no-espaciales (atributos) pueden coexistir en la misma tabla
SELECT r.id FROM centro_poblado cp, ruta r WHERE cp.nombre='Crdoba' AND touches(r.geom, cp.geom)
PostGIS
Add-on para PostgreSQL para soportar bases de datos espaciales. www.postgis.org Instalacin (en debian): paquete postgresql-8.1-postgis Creacin de una BD PostgreSQL para poder albergar datos espaciales:
createdb basegeo createlang plpgsql #y hacer el include de PostGIS:
Funciones de PostGIS:
Soporta todas las funciones del estndar de OGC (Open Geospatial Consortium)
Union, Interseccn, rea, Distancia, Buffer, Touches, Contains, Overlaps, etc. ...
MapServer
Servidor de Mapas http://mapserver.gis.umn.edu Puede tomar datos georeferenciados de diversas fuentes (entre ellas PostGIS) y generar una imagen: png, gif, jpg, tiff, ... Definimos el mapa en un archivo (.map) siguiendo una sintaxis especfica de MapServer. Luego podemos acceder a los resultados directamente (interfaz cgi-bin) o con bindings, por ej. el de PHP.
PHPMapScript
Ejemplo sencillo:
Podemos generarlo con alguna herramienta como por ejemplo QGIS O a mano:
MAP NAME MONTEVIDEO EXTENT 442306 6133367 479057 6162431 STATUS ON SIZE 415 315 IMAGETYPE PNG IMAGECOLOR 255 255 255 UNITS METERS LAYER CONNECTIONTYPE postgis CONNECTION "host=.... password=.... user=... dbname=..." NAME "Manzanas" TYPE POLYGON STATUS ON DATA "the_geom from manzanas" END END
<?php $map = ms_newMapObj("mimapa.map"); $img = $map->draw(); $url = $img->saveWebImage(); printf("<IMG SRC=%s WIDTH=%d HEIGHT= %d>\n", $url, $map->width, $map>height); ?>
Chameleon
Es un ejemplo del uso de PHPMapscript www.maptools.org/chameleon Nos brinda un set de herramientas / widgets listos para usarlos en nuestro mapa. Instalacin:
PostgreSQL + PostGIS
Hagamos lo ms fcil:
El archivo .map El keymap de referencia La proyeccin El idioma ... luego ... todo lo que quieran
Qu hacer?
En el template, registro en Chameleon una nueva funcin JavaScript para el evento ON_QUERY:
<script language="JavaScript" type="text/javascript"> function myOnLoad(){ CWC2OnLoadFunction(); goEventManager.registerForEvent('ON_QUERY','myOnQuery'); } function myOnQuery(nX,nY){ var url 'my_query.php?x='+nX+'&y='+nY+'&sid='+document.forms[0].sid.value; var eval_win = window.open(url,'eval_win','width=600,height=800'); eval_win.focus(); } </script>
Muchas gracias