<div class="gmail_quote"><div class="gmail_quote"><div><div class="h5">Teniendo en cuenta la respuesta de foro, como es posible hacer lo siguiente:<br>* Lo hecho: Muestro en pagina web, parcelas de un lugar , tal q puedo hacer zoom, recorrer mapa, tomando los datos de postgres.<br>
* 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.<br>
<br>Tengo este map con el q toy probando de manera simple<br>una capa tiene todas las parcelas del lugar, la otra capa es de un ejemplo q tome de alguien generoso q brindo sugerencia<br><br>MAP<br> NAME map_generated_by_gvsig <br>
SIZE 600 400<br> EXTENT 529495.77 602500.66 588410.0 660675.0<br> SYMBOLSET "dmWmsDB2.sym"<br> FONTSET "fonts.txt"<br> LEGEND<br> IMAGECOLOR -1 -1 -1<br> LABEL<br> FONT "vera"<br>
ANGLE FOLLOW<br> COLOR 0 0 0<br> ENCODING "UTF-8"<br> TYPE truetype<br> SIZE 8<br> END<br> STATUS ON<br> TRANSPARENT ON<br> END<br> WEB<br> METADATA<br>
"wms_encoding" "UTF-8"<br> "wms_title" "Mapserver WMS"<br> "wms_abstract" ""<br> "wms_srs" " EPSG:4326"<br> "wms_onlineresource" "<a href="http://localhost/cgi-bin/mapserv?map=%2Fvar%2Fwww%2FgisPrueba1%2FdmWmsDB2.map">http://localhost/cgi-bin/mapserv?map=%2Fvar%2Fwww%2FgisPrueba1%2FdmWmsDB2.map</a>"<br>
END<br> END<br> PROJECTION<br> "init=epsg:4326"<br> END<br> LAYER<br> NAME "public.alachua"<br> STATUS ON<br> TYPE POLYGON<br> <br> CONNECTIONTYPE POSTGIS<br> CONNECTION "user=XXXpassword=XXX host=XXX port=XXX dbname=XXX"<br>
DATA "the_geom from xxxxx as subquery using unique gid using srid=4326" <br>
<br> <br> MAXSCALE -1.0<br> MINSCALE -1.0<br> TRANSPARENCY 100<br> SIZEUNITS pixels<br> PROJECTION<br> "init=epsg:4326"<br> END<br> CLASS<br> STYLE <br> COLOR 255 51 51<br>
OUTLINECOLOR 28 90 49<br> WIDTH 1<br> END<br> NAME "default"<br> END<br> METADATA<br> "wms_title" "public.alachua"<br> "wms_abstract" "generated by gvSIG"<br>
"wms_extent" "529495.77 602500.66 588409.96 660674.98"<br> "gml_include_items" "all"<br> END<br> END # Layer<br> LAYER<br><span style="color: rgb(255, 0, 0);"> NAME "filtro"</span><br>
STATUS ON<br> TYPE POLYGON<br> <span style="color: rgb(255, 0, 0);"> CLASSITEM "hola" </span> <br> CONNECTIONTYPE POSTGIS<br> CONNECTION "user=XXXpassword=XXX host=XXX port=XXX dbname=XXX"<br>
DATA "the_geom from xxxxx as subquery using unique gid using srid=4326" <br> <br> TYPE POLYGON<br> <span style="color: rgb(255, 0, 0);">CLASSITEM "tam"</span><br> PROJECTION<br>
"init=epsg:4326" <br> END #fin projection<br> CLASS<br> NAME "parcela"<br> STYLE<br> SYMBOL 0<br> OUTLINECOLOR 96 96 96<br> SIZE 2<br>
END #fin style<br> END #fin class<br> METADATA<br> "wms_title" "public.alachua"<br> "wms_abstract" "generated by gvSIG"<br> "wms_extent" "529495.77 602500.66 588409.96 660674.98"<br>
<br> END<br> END # layer<br>END<br><br><br>php<br><br>$jMap = ms_newMapObj("/var/www/gisPrueba1/".$nombreMapa.".map");<br>$layer = $jMap->getLayerByName('filtro'); <br>$clasp = $layer->getClass('parcela'); <br>
<a href="mailto:mapserver-users@lists.osgeo.org"></a>$clasp->setExpression("tam");<br><br>LO QUE HAGO CON GVSIG, EN DONDE LO AMARILLO ES DE CONSULTA, A ESO QUIERO LLEGAR A HACER DINAMICANTE? <br><img title="Screenshot-1.png" alt="Screenshot-1.png" src="cid:ii_131fc9f554f46a9a"><br>
<br><br><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Perdón el anterior mail anterior salió cortado.<div><br></div><div>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. </div>
<div><br></div><div>Te adjunto un ejemplo:</div><div><br></div><div>------En el Mapfile</div><div><br></div><div><div> LAYER</div><div> NAME "<b><font color="#cc33cc">Parcelas</font></b>"</div>
<div> STATUS ON</div><div> CONNECTIONTYPE POSTGIS</div><div> CONNECTION "host=localhost dbname=BD user=uuuuu password=xxxxxxx"</div><div> DATA "the_geom from parcelas USING UNIQUE gid USING SRID=4326"</div>
<div> TYPE POLYGON</div><div> <b>CLASSITEM</b> "<b><font color="#3333ff">idmza</font></b>"</div><div> PROJECTION</div><div> "init=epsg:4326" </div><div> END #fin projection</div><div>
<b> CLASS</b></div><div> <b>NAME</b> "<b><font color="#009900">Parce</font></b>"</div><div> STYLE</div><div> SYMBOL 0</div>
<div><span style="white-space: pre-wrap;"> </span>OUTLINECOLOR 96 96 96</div><div> SIZE 2</div><div> END #fin style</div><div> END #fin class</div><div> END #fin layer</div></div>
<div><br></div><div>---------En tu aplicación WEB</div><div><br></div>
<div>$variable= "proveniente del formulario";</div><div><div><br></div>
<div>1º Consulta a la BD</div><div><br></div></div><div>$query = "<u>SELECT <b><font color="#3333ff">idmza</font></b> FROM parcelas WHERE manzana = '$variable</u>';</div><div><div>$result = pg_Exec($dbconn, $query);</div>
<div>$row = pg_Fetch_Row($result, 0);</div><div><b><font color="#ff0000">$filtro </font></b> = $row[1];</div></div><div><br></div><div>2º Definición del Mapfile</div><div><br></div><div><div>//Ubicación del map file</div>
<div>$map_path="c:/ms4w/apps/mapa_web/";</div><div>$map = ms_newMapObj($map_path."/<b>mapa_parcelas.map</b>");</div><div><br></div><div>3º Filtrar parcelas con el resultado de la consulta</div><div><div>
//para filtrar las parcelas</div>
<div>$layer = $map->getLayerByName('<b><font color="#cc66cc">Parcelas</font></b>'); // se posiciona en el layer Parcelas</div><div>$clasp = $layer->getClass('<b><font color="#009900">Parce</font></b>'); //Obtiene el objeto CLASS de nombre 'Parce' del layer Parcelas</div>
<div>$clasp->setExpression(<b><font color="#ff0000">$filtro</font></b>); //Solo las parcelas con el mismo "idmza" se representaran con el estilo definido en el CLASS 'Parce'</div>
</div><div><br></div><div>4º Imprimir el mapa</div><div><br></div><div><div>//dibujar mapa</div><div>$image=$map->draw();</div>
<div>$image_url=$image->saveWebImage();</div></div><div><br></div><div><br></div><div>Luego en el cuerpo de la página imprimís la imagen que queda guardada en "$image_url"</div><div><br></div><div>Espero te sirva de guía!</div>
<div>Saludos</div><div><br></div><div>PD: te recomiendo envíes tus consultas a la lista de Mapserver[1] o a OSGEOes[2], para no mezclar temas.</div><div><br></div><div>[1] <a href="http://www.osgeo.org/mailman/listinfo/mapserver-users" target="_blank">http://www.osgeo.org/mailman/listinfo/mapserver-users</a></div>
<div>[2] <a href="http://lists.osgeo.org/mailman/listinfo/spanish" target="_blank">http://lists.osgeo.org/mailman/listinfo/spanish</a></div><div><br></div><br>
</div></blockquote></div></div></div></div><br>