[Gvsig_usuarios] Fwd: Fwd: consulta de novato consultas sql , mapserver, gvsig

Amalia Carolina Canavire acarolinagc en gmail.com
Mie Ago 24 18:29:51 CEST 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 en 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
>
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20110824/32b9ac65/attachment.htm 
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : image/png
Tamaño     : 280348 bytes
Descripción: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20110824/32b9ac65/attachment.png 


Más información sobre la lista de distribución gvSIG_usuarios