[mapserver-users] Fwd: [Gvsig_usuarios] Fwd: consulta de novato consultas sql , mapserver, gvsig
Amalia Carolina Canavire
acarolinagc at gmail.com
Wed Aug 24 09:29:51 PDT 2011
Teniendo en cuenta la respuesta de foro, como es posible hacer lo
siguiente:
* Lo hecho: Muestro en pagina web, parcelas de un lugar , tal q puedo hacer
zoom, recorrer mapa, tomando los datos de postgres.
* Lo que deseo: deseo ahora poder hacer consultas a base de dato, tal q
pueda por ejemplo al selecionar un atributo supongamos tamaño , visualizar
con otro color las parcelas q superan determinado tamaño, con GVSIG puedo
hacer filtros de base de datos, pero como hago lo mismo com mapscript,
siguiendo el ejemplo que me brindaron y puse al final logre tomar la columna
tam de base de dato y se la paso a por setExpression, pero mi duda es COMO
HAGO PARA Q ME COLOREE O ME COLOQUE UN SIMBOLO EN LAS PARCELAS DETERMINADAS,
porque con la sugerencia muestro lo mismo q la capa q tiene todos las
parcelas.Capaz mis preguntas sean redundantes, pero quiero aprender.
Tengo este map con el q toy probando de manera simple
una capa tiene todas las parcelas del lugar, la otra capa es de un ejemplo q
tome de alguien generoso q brindo sugerencia
MAP
NAME map_generated_by_gvsig
SIZE 600 400
EXTENT 529495.77 602500.66 588410.0 660675.0
SYMBOLSET "dmWmsDB2.sym"
FONTSET "fonts.txt"
LEGEND
IMAGECOLOR -1 -1 -1
LABEL
FONT "vera"
ANGLE FOLLOW
COLOR 0 0 0
ENCODING "UTF-8"
TYPE truetype
SIZE 8
END
STATUS ON
TRANSPARENT ON
END
WEB
METADATA
"wms_encoding" "UTF-8"
"wms_title" "Mapserver WMS"
"wms_abstract" ""
"wms_srs" " EPSG:4326"
"wms_onlineresource" "
http://localhost/cgi-bin/mapserv?map=%2Fvar%2Fwww%2FgisPrueba1%2FdmWmsDB2.map
"
END
END
PROJECTION
"init=epsg:4326"
END
LAYER
NAME "public.alachua"
STATUS ON
TYPE POLYGON
CONNECTIONTYPE POSTGIS
CONNECTION "user=XXXpassword=XXX host=XXX port=XXX dbname=XXX"
DATA "the_geom from xxxxx as subquery using unique gid using
srid=4326"
MAXSCALE -1.0
MINSCALE -1.0
TRANSPARENCY 100
SIZEUNITS pixels
PROJECTION
"init=epsg:4326"
END
CLASS
STYLE
COLOR 255 51 51
OUTLINECOLOR 28 90 49
WIDTH 1
END
NAME "default"
END
METADATA
"wms_title" "public.alachua"
"wms_abstract" "generated by gvSIG"
"wms_extent" "529495.77 602500.66 588409.96 660674.98"
"gml_include_items" "all"
END
END # Layer
LAYER
NAME "filtro"
STATUS ON
TYPE POLYGON
CLASSITEM "hola"
CONNECTIONTYPE POSTGIS
CONNECTION "user=XXXpassword=XXX host=XXX port=XXX dbname=XXX"
DATA "the_geom from xxxxx as subquery using unique gid using
srid=4326"
TYPE POLYGON
CLASSITEM "tam"
PROJECTION
"init=epsg:4326"
END #fin projection
CLASS
NAME "parcela"
STYLE
SYMBOL 0
OUTLINECOLOR 96 96 96
SIZE 2
END #fin style
END #fin class
METADATA
"wms_title" "public.alachua"
"wms_abstract" "generated by gvSIG"
"wms_extent" "529495.77 602500.66 588409.96 660674.98"
END
END # layer
END
php
$jMap = ms_newMapObj("/var/www/gisPrueba1/".$nombreMapa.".map");
$layer = $jMap->getLayerByName('filtro');
$clasp = $layer->getClass('parcela');
<mapserver-users at lists.osgeo.org>$clasp->setExpression("tam");
LO QUE HAGO CON GVSIG, EN DONDE LO AMARILLO ES DE CONSULTA, A ESO QUIERO
LLEGAR A HACER DINAMICANTE?
[image: Screenshot-1.png]
Perdón el anterior mail anterior salió cortado.
>
> Insisto en que investigues MapScritp. Es la única forma que conozco (quizás
> alguien en la lista conozca otra) de pasar parámetros vía formulario html
> para definir la simbología a aplicar.
>
> Te adjunto un ejemplo:
>
> ------En el Mapfile
>
> LAYER
> NAME "*Parcelas*"
> STATUS ON
> CONNECTIONTYPE POSTGIS
> CONNECTION "host=localhost dbname=BD user=uuuuu password=xxxxxxx"
> DATA "the_geom from parcelas USING UNIQUE gid USING SRID=4326"
> TYPE POLYGON
> *CLASSITEM* "*idmza*"
> PROJECTION
> "init=epsg:4326"
> END #fin projection
> * CLASS*
> *NAME* "*Parce*"
> STYLE
> SYMBOL 0
> OUTLINECOLOR 96 96 96
> SIZE 2
> END #fin style
> END #fin class
> END #fin layer
>
> ---------En tu aplicación WEB
>
> $variable= "proveniente del formulario";
>
> 1º Consulta a la BD
>
> $query = "*SELECT idmza FROM parcelas WHERE manzana = '$variable*';
> $result = pg_Exec($dbconn, $query);
> $row = pg_Fetch_Row($result, 0);
> *$filtro * = $row[1];
>
> 2º Definición del Mapfile
>
> //Ubicación del map file
> $map_path="c:/ms4w/apps/mapa_web/";
> $map = ms_newMapObj($map_path."/*mapa_parcelas.map*");
>
> 3º Filtrar parcelas con el resultado de la consulta
> //para filtrar las parcelas
> $layer = $map->getLayerByName('*Parcelas*'); // se posiciona en el
> layer Parcelas
> $clasp = $layer->getClass('*Parce*'); //Obtiene el objeto
> CLASS de nombre 'Parce' del layer Parcelas
> $clasp->setExpression(*$filtro*); //Solo las
> parcelas con el mismo "idmza" se representaran con el estilo definido en el
> CLASS 'Parce'
>
> 4º Imprimir el mapa
>
> //dibujar mapa
> $image=$map->draw();
> $image_url=$image->saveWebImage();
>
>
> Luego en el cuerpo de la página imprimís la imagen que queda guardada en
> "$image_url"
>
> Espero te sirva de guía!
> Saludos
>
> PD: te recomiendo envíes tus consultas a la lista de Mapserver[1] o a
> OSGEOes[2], para no mezclar temas.
>
> [1] http://www.osgeo.org/mailman/listinfo/mapserver-users
> [2] http://lists.osgeo.org/mailman/listinfo/spanish
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20110824/32b9ac65/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screenshot-1.png
Type: image/png
Size: 280348 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20110824/32b9ac65/attachment.png>
More information about the MapServer-users
mailing list