[Geomoose-users] Identify tool not work in Postgis layers

Fernando nando_gcia at hotmail.com
Fri May 22 06:16:50 PDT 2015


Hello, I have installed on a Windows PC, MS4W - MapServer 4 Windows version 3.0.4, PHP 5.3.10, CGI MapServer 6.0.2, Apache 2.2.21, PostgreSQL 9.4, PostGIS 2.1 and GeoMOOSE 2.7.1.

 Postgis layers displayed correctly but doesn't work the Identify tool. I read all the documentation and I can not figure out what fails. I modified the example of "parcels" that brings GeoMOOSE to guide me.

 My configs are the folowing:

 mapbook Describing the query and the select services:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<mapbook version="2.7.1">
    <configuration>
        <param name="links_bar_html"><![CDATA[
            <b>Our Stack:</b>
            <a target="_blank" href="http://www.geomoose.org">GeoMOOSE.org</a> |
            <a target="_blank" href="http://www.mapserver.org">MapServer</a> |
            <a target="_blank" href="http://www.openlayers.org">OpenLayers</a> |
            <a target="_blank" href="http://www.dojotoolkit.org">Dojo</a> 
        ]]></param>
        <param name="projection">EPSG:3857</param>

        <param name="zoomto"><![CDATA[
        {
            "Zoom a plantas:" : {
                "PLANTA BAJA Y PATIOS" : [60,240,170,350],
                "PRIMERA" : [-80,120,18,218],
                "PLANTA SEGUNDA" : [70,120,160,215],
                "PLANTA TERCERA" : [-80,0,10,100],
                "PLANTA SÓTANO" : [-90,242,36,350],
                "PLANTA CUBIERTAS" : [90,-2,160,108]
            }
        }
        ]]></param>

        <param name="max_extent">-136,-1,227,362</param>
        <param name="initial_extent">-136,-1,227,362</param>
        <param name="measure_tool.show_area_segments">false</param>
        <param name="layer_controls.legend.on">false</param>
        <param name="layer_controls.metadata.on">false</param>        
        <param name="layer_controls.legend.on">true</param>    
        <param name="ground_units">m</param>
        <param name="maxResolution">1000</param>
        <param name="numZoomLevels">20</param>
        <param name="layer_controls.fade.on">true</param>
        <param name="coordinate_display.usng">true</param>
        <param name="jumpto_scales"><![CDATA[
        {
            "1:1000" : 1000,
            "1:500" : 500,
            "1:240" : 240,
            "1:100" : 100,
            "1:50" : 50
        }
    ]]></param>    

    </configuration>
    <!--
        The mapping services define the source of the mapping data.
    -->

    <map-source name="highlight" type="mapserver">
        <file/>
        <layer name="highlight"/>
        <param name="TRANSPARENT" value="TRUE"/>
    </map-source>

        <!-- C2-ALBERT_EINSTEIN -->
    <map-source name="edificio_c2_espacios" type="mapserver">
        <file>./c2_postgis.map</file>
        <layer name="C2-ALBERT_EINSTEIN" status="on"/>
        <param name="FORMAT" value="image/png; mode=8bit"/>
       <param name="TRANSPARENT" value="true"/>
    </map-source>

------------------------------------------------------------------------------------------------------------------

    <service name="identify" title="Identify" display="true" display-submit="false" clear-highlight="true">
        <url>php/identify.php</url>
        <step type="spatial" name="shape" line="false" polygon="false" jump-start="true" default="point" box="true" pan="false">
            <header>
                Click on the map to see more detailed information.
            </header>
            <!--
            Uncomment this line to test "hidden" layers working with identify.  This will
            leave the layers listed here always identified despite their visibility.
            <input type="hidden" name="hidden_layers" value="edificio_c2_espacios/C2-ALBERT_EINSTEIN"/>
            -->
            <input type="visiblelayers" name="layers"/>
            <input type="projection" name="projection"/>
        </step>
    </service>

-----------------------------------------------------------------------------------------------------------------------

    <!-- 
        The catalog defines how the layers will be displayed in the catalog tab.
    -->
    <catalog>
            <group title="PLANOS DISTRIBUCIÓN" expand="true">
                <layer title="ESPACIOS" src="edificio_c2_espacios/C2-ALBERT_EINSTEIN" metadata="true" legend="true" tip="Plano de las ubicaciones poligonadas" show-legend="true" popups="true" fade="true" unfade="true"> 
                    <metadata>http://www.geomoose.org/docs/</metadata>
                </layer>
            </group>
    </catalog>

------------------------------------------------------------------------------------------------------------------------

Map file "edificio_c2.map" of the postgis layer in C:\ms4w\apps\geomoose2\maps

MAP                                                                    # DEFINICIÓN DEL MAPA
    NAME EDIFICIO_C2_MAP                            # nombre del Mapa
    STATUS ON                                                    # estado activado
    SIZE 800 800                                            # tamaño en píxeles 
    EXTENT -136 -1 227 362                          # extensión gráfica de la imagen. Es un área rectangular marcada por las coordenadas de
                                                                        # dos lados opuestos (el inferior izquierdo y el superior derecho).
    UNITS METERS                                             # unidad de medida
    #SHAPEPATH "../data"                          # directorio origen de datos
    
    INCLUDE "./geomoose_globals.map"
        
    IMAGECOLOR 255 255 255                        # color de background
    IMAGETYPE PNG                                            # tipo de salida de imagen
    SYMBOLSET "./symbols/symbol.sym"   
    FONTSET "./fonts/fontset.list" 
    TRANSPARENT FALSE
    RESOLUTION 100
    DEFRESOLUTION 100
    CONFIG "MS_ERRORFILE" "/ms4w/ms_error_c2.txt"

  OUTPUTFORMAT
  NAME png
  DRIVER "AGG/PNG"
  MIMETYPE "image/png"
  IMAGEMODE PC256
  EXTENSION "png"
  FORMATOPTION "GAMMA=0.75"
END

OUTPUTFORMAT
  NAME "gif"
  DRIVER GD/GIF
  MIMETYPE "image/gif"
  IMAGEMODE PC256
  EXTENSION "gif"
END

OUTPUTFORMAT
  NAME "jpeg"
  DRIVER AGG/JPEG
  MIMETYPE "image/jpeg"
  IMAGEMODE RGB
  EXTENSION "jpg"
  FORMATOPTION "GAMMA=0.75"
END   

    #
    # Start of web interface definition
    #
    WEB                                                                # ESTE OBJETO NOS PERMITIRÁ VISUALIZAR LA IMAGEN CREADA POR MAPSERVER
      #MINSCALE 10
      #MAXSCALE 1000
    #
    # On Windows systems, /tmp and /tmp/ms_tmp/ should be created at the root 
    # of the drive where the .MAP file resides.
    #
      IMAGEPATH "/ms4w/tmp/ms_tmp/" 
      IMAGEURL "/ms_tmp/"
      #LOG "/ms4w/gmap.log"
      METADATA
          "wms_title" "WMS SIG-UCO SERVER - EDIFICIO C2 ALBERT EINSTEIN"
          "wms_abstract" "SERVIDOR WMS DE LOS PLANOS DEL EDIFICIO ALBERT EINSTEIN (C2)."
            "wms_onlineresource"    "http://localhost/cgi-bin/mapserv?map=/ms4w/apps/geomoose2/maps/c2_postgis.map"
            "wms_srs" "epsg:3857"
            "wms_enable_request" "*"   #necessary
             "wms_feature_info_mime_type" "text/html"      
     END
    END
    
    #
    # Start of reference map
    #
    REFERENCE                                                                            # DEFINE EL MAPA DE REFERENCIA
       IMAGE "../htdocs/images/keymap_c2.png"                        # imagen de referencia
       EXTENT -136 -1 227 362                                             # extensión    
       STATUS ON                                                                    # estado activado
       COLOR -1 -1 -1                                                            # color de background
       OUTLINECOLOR 255 0 0                                                # color de línea de caja
       SIZE 210 210                                                                # tamaño en píxeles      
    END
    
    #
    # Start of legend
    #
    LEGEND                                # DEFINE LA LEYENDA DEL MAPA. MUESTRA LAS CAPAS ACTIVAS Y LAS ETIQUETAS DEFINIDAS
                                                # A TRAVÉS DE LA ETIQUETA LABEL
      STATUS ON                        # estado on/off
      KEYSIZE 18 12                
      LABEL
        TYPE BITMAP                # tipo de salida
        SIZE MEDIUM                # tamaño
        COLOR 0 0 89            # color del texto
      END
    END
    
    QUERYMAP
        STATUS ON
      STYLE HILITE
      COLOR 255 255 0
    END
    
#
# Start of ScaleBar definition
#
SCALEBAR
  STATUS EMBED
  TRANSPARENT OFF
  INTERVALS 3
  SIZE 200 5
  UNITS meters
  COLOR 250 250 250
  OUTLINECOLOR 0 0 0
  BACKGROUNDCOLOR 100 100 100
  STYLE 0
  POSTLABELCACHE true
  LABEL
    COLOR 0 0 90
    #OUTLINECOLOR 200 200 200
    SIZE MEDIUM
  END  # Label
END  # Reference

    PROJECTION                                                # DEFINICIÓN DE LA PROYECCIÓN DEL MAPA
        "init=epsg:3857"
    END
    
# SYMBOLS USED
# - 'circle' always necessary (used e.g. for highlight)
# - 'square' used in currecnt map file
# Symbols can also be defined via tag SYMBOLSET (see above)
Symbol
  Name 'circle'
  Type ELLIPSE
  Filled TRUE
  Points
    1 1
  END
END 

Symbol
  Name 'square'
  Type VECTOR
  Filled TRUE
  Points
    0 1
    0 0
    1 0
    1 1
    0 1
  END
END

    SYMBOL
        NAME "tabiqueria"
        TYPE vector
        POINTS
        0 0
        1 1
        END
    END

    SYMBOL
        NAME "tejado"
        TYPE vector
        POINTS
        1 0
        0 1
        END
    END
    
    SYMBOL
        NAME "terraza"
        TYPE vector
        POINTS
        0 1
        0 0
        1 0
        1 1
        0 1
        END
    END

### 
    
LAYER
 CONNECTIONTYPE postgis
 CONNECTION "user=postgres password=************** dbname=edificio_c2 host=localhost port=5432"
 DATA "the_geom FROM c2_shape USING UNIQUE gid USING SRID=3857"
 
 GROUP "C2-ALBERT_EINSTEIN"                                            # grupo de la capa
 NAME "C2-ALBERT_EINSTEIN"                                                # nombre de la capa
 METADATA
   "DESCRIPTION" "ESPACIOS POLIGONADOS"
   "GROUP" "C2-DISTRIBUCION"
   "LAYER" "C2-ALBERT_EINSTEIN"
   "TRANSPORTATION" "TRUE"
   "RESULT_FIELDS" "dxf_text,area,perimeter,tipo_ubica,tipo_uso,contenido,practica,investigac,docente,otros,departamen,area_depto,profesor,pas"
   "RESULT_HEADERS" "IDENTIFICADOR, SUPERFICIE (m2), PERIMETRO (m), TIPO UBICACION, TIPO USO, DESCRIPCION, %PRACTICAS, %INVESTIGACION, %DOCENCIA, %OTROS USOS, DEPARTAMENTO, AREA DEPARTAMENTAL, PROFESOR, PERSONAL"
   "SPATIALSEARCH" "dxf_text"                                                                        # Otra opción: "DXF_TEXT, AREA, PERIMETER" ó "AREA|PERIMETER|KELURAHAN|KECAMATAN|KABUPATEN|PROPINSI"
   "SPATIALSEARCHLIST" "dxf_text,area,perimeter"                                # Otra opción: "DXF_TEXT, AREA, PERIMETER"
     "wms_group_title"   "C2-DISTRIBUCION"
     "wms_title" "Plano con filtro C2 ALBER EINSTEIN"
     "wms_name" "C2-ALBERT_EINSTEIN"
     "wms_format" "image/png"          
     "wms_abstract" "C2 ALBERT EINSTEIN - Plano de la distribución del edificio"
     "wms_srs" "epsg:3857"
     "wms_enable_request" "*"                            # otras opciones son: "wms_enable_request" "GetMap GetFeatureInfo"
     "wms_server_version" "1.1.1"
     "wms_extent"    "-136 -1 227 362"
     "gml_include_items"   "all"
     "wms_include_items"   "all"

            # drill-down identify service record.
        'identify_record'    './templates/identify.html'

            # query.php / "Search Parcels" functionality.
            'itemquery'    'templates/search_result.html'
            'itemquery-filter'    '/.*[qstring].*/i' 
            'qstring_validation_pattern' '.'
            
            # Feature reports are stored in the conf/feature_report directory.
            'feature_report' 'parcel.xml'

        'select_record'    'templates/select_result.html'
            'select_header' 'templates/select_header.html'
            'popups' 'parcels_popup.html'
 END
 
 VALIDATION
   # %filtro% subtituciones sólo pueden tener letras minúsculas, mayúsculas y números
   'filtro'     '^[a-zA-Z0-9]+'
 END        

 STATUS ON
 TYPE POLYGON
      #LABELITEM "DXF_TEXT"                                                    # define la columna de la tabla atributos que se va mostrar en el mapa
         #LABELMAXSCALE 500                                                            # establece la escala máxima a la que las etiquetas serán dibujadas

        CLASSITEM 'dxf_text'
      CLASS                                                                                    # NOS PERMITE AGRUPAR O SELECCIONAR DIFERENTES PARTES O TIPOS DE UNA CAPA
        NAME "TABIQUERIA"                                                        # nombre de leyenda
        EXPRESSION ('[dxf_text]' eq 'TABIQUERIA')        # es la regla que define la pertenencia a una clase
            STYLE
            COLOR 246 158 4                                                      # estilo del CLASS
            OUTLINECOLOR 100 100 100
            BACKGROUNDCOLOR 254 202 112
            SYMBOL "tabiqueria"
            SIZE 7
            # COLOR 255 0 0
            # OUTLINECOLOR 0 0 0
        END #end style
      END
      
      CLASS                                                                                    # NOS PERMITE AGRUPAR O SELECCIONAR DIFERENTES PARTES O TIPOS DE UNA CAPA
        NAME "ESCALERA EMERGENCIA"                                                        # nombre de leyenda
        EXPRESSION (('[dxf_text]' eq 'ESCALERA EMERGENCIA') or ('[dxf_text]' eq 'RAMPA') or ('[dxf_text]' eq 'ESCALERA OBRA') or ('[dxf_text]' eq 'C1'))        # es la regla que define la pertenencia a una clase
            STYLE
            COLOR 150 196 150                                                      # estilo del CLASS
            OUTLINECOLOR 100 100 100
            BACKGROUNDCOLOR 254 202 112
            #SYMBOL "tabiqueria"
            SIZE 7
            # COLOR 255 0 0
            # OUTLINECOLOR 0 0 0
        END #end style
           LABEL                                                                                # define el estilo de las etiquetas LABELITEM
              FONT "vera_sans-bold"
              TYPE truetype
              SIZE 7
               COLOR 0 0 0
               OUTLINECOLOR 255 255 0               
               ALIGN CENTER
               FORCE FALSE                                                                # indica que no muestre todas las etiquetas para que no se solapen hasta que no se haga zoom
               PARTIALS TRUE
               POSITION AUTO
               MAXSCALEDENOM 600               
           END
            #TEXT ([dxf_text])                                                        # SINTAXIS PARA MAPSERVER 5.6.6
           TEXT ('[dxf_text]')                                                # SINTAXIS PARA MAPSERVER 6.0.1
      END
      
      CLASS                                                                                    # NOS PERMITE AGRUPAR O SELECCIONAR DIFERENTES PARTES O TIPOS DE UNA CAPA
        NAME "BUSQUEDAS"                                                    # nombre de leyenda
        EXPRESSION ('[dxf_text]' IN '%filtro%')        # es la regla que define la pertenencia a una clase
            STYLE                                                                                # estilo del CLASS
            COLOR 255 125 125
            OUTLINECOLOR 255 0 0
           END #end style
           LABEL                                                                                # define el estilo de las etiquetas LABELITEM
              FONT "vera_sans-bold"
              TYPE truetype
              SIZE 7
               ALIGN CENTER
               COLOR 0 0 0
               FORCE TRUE                                                                # indica que no muestre todas las etiquetas para que no se solapen hasta que no se haga zoom
               PARTIALS TRUE
               POSITION AUTO
               WRAP ':'
           END
            #TEXT ([dxf_text]:[tipo_ubica])                            # SINTAXIS PARA MAPSERVER 5.6.6
           TEXT ('[dxf_text]' + ':' + '[tipo_ubica]')    # SINTAXIS PARA MAPSERVER 6.0.1
        END # end class
          
      CLASS                                                                                    # NOS PERMITE AGRUPAR O SELECCIONAR DIFERENTES PARTES O TIPOS DE UNA CAPA
        NAME "UBICACIONES"                                                    # nombre de leyenda
            STYLE                                                                                # estilo del CLASS
            COLOR 235 235 235
            OUTLINECOLOR 100 100 100
           END #end style
           LABEL                                                                                # define el estilo de las etiquetas LABELITEM
              FONT "vera_sans"
              TYPE truetype
              SIZE 7               ALIGN CENTER
               COLOR 0 0 0
               OUTLINECOLOR 255 255 128
               FORCE TRUE                                                                # TRUE: indica que si muestre todas las etiquetas aunque se solapen sin tener que esperar a hacer zoom
               PARTIALS FALSE
               POSITION AUTO
               MAXSCALEDENOM 600
               WRAP ':'
           END
            #TEXT ([dxf_text])                                                    # SINTAXIS PARA MAPSERVER 5.6.6
            #TEXT ([dxf_text]:[tipo_ubica])                            # SINTAXIS PARA MAPSERVER 5.6.6
           TEXT ('[dxf_text]' + ':' + '[tipo_ubica]')    # SINTAXIS PARA MAPSERVER 6.0.1
        END # end class

        TOLERANCE 0
        TOLERANCEUNITS PIXELS
    TEMPLATE "building_popup.html" # sin plantilla, no hace bien las consultas
        
 PROJECTION
    "init=epsg:3857"
 END
END
  END ## end Map


---------------------------------------------------------------------------------------------------------------

My postgis table:

CREATE TABLE c2_shape
(
  gid serial NOT NULL,
  area numeric,
  perimeter numeric,
  cover_ double precision,
  cover_id double precision,
  dxf_layer character varying(31),
  dxf_color smallint,
  dxf_thickn double precision,
  dxf_type character varying(10),
  dxf_elevat double precision,
  dxf_handle character varying(16),
  dxf_angle double precision,
  dxf_size double precision,
  dxf_text character varying(40),
  dxf_attrib character varying(16),
  dxf_iid double precision,
  contenido character varying(254),
  departamen character varying(254),
  area_depto character varying(254),
  tipo_ubica character varying(254),
  tipo_uso character varying(254),
  profesor character varying(254),
  pas character varying(254),
  investigac character varying(254),
  docente character varying(254),
  practica character varying(254),
  otros character varying(254),
  the_geom geometry(MultiPolygon,3857),
  CONSTRAINT c2_shape_pkey PRIMARY KEY (gid)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE c2_shape
  OWNER TO postgres;

-- Index: c2_shape_the_geom_idx

-- DROP INDEX c2_shape_the_geom_idx;

CREATE INDEX c2_shape_the_geom_idx
  ON c2_shape
  USING gist
  (the_geom);


---------------------------------------------------------------------------------------------------------------

File "parcels_popup.html" in C:\ms4w\apps\geomoose2\maps

<!-- MapServer Template -->
<div>
<b>Identificador:</b> [dxf_text]<br/>
<b>Contenido:</b> [contenido]<br/>
<br/>

<a href="javascript:GeoMOOSE.startService('feature_report', {'src' : 'edificio_c2_espacios/C2-ALBERT_EINSTEIN', 'dxf_text' : '[dxf_text]'});">View Parcel Report</a>
</div>

---------------------------------------------------------------------------------------------------------------


Here are the files that i have in the templates folder -> C:\ms4w\apps\geomoose2\maps\templates, modified to my postgis layer

identify.html

<!-- MapServer Template -->
<tr bgcolor="#DEE5EB"><td colspan="2"><b><u>ESPACIOS</u></b></tr>
<tr>
<td align="right"><b>IDENTIFICADOR:</b></td>
<td>[dxf_text]</td>
</tr>
<tr>
<td align="right"><b>CONTENIDO:</b></td>
<td>[contenido]</td>
</tr>
<tr>
<td align="right"><b>TIPO UBICACIÓN:</b></td>
<td>[tipo_ubica]</td>
</tr>
<tr>
<td align="right"><b>TIPO USO:</b></td>
<td>[tipo_uso]</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>


identify.map

<!-- MapServer Template -->
<a id="[dxf_text]" class='sprite-control sprite-control-find-selected' style="padding-left: 22px" parcel-shape="[shpxy]" href="javascript:GeoMOOSE.zoomToPointsList(dojo.byId('[dxf_text]').getAttribute('dxf_text'), 'EPSG:3857');">[dxf_text]</a><br/>
[contenido]<br/>
<br/>

search_result.html

<!-- MapServer Template -->
<b>Identificador:</b> <a data-pin="[dxf_text]" id="gm-parcel-[dxf_text]" class='sprite-control sprite-control-find-selected' style="padding-left: 22px" parcel-shape="[shpxy]" href="javascript:GeoMOOSE.zoomToPointsList(dojo.byId('[dxf_text]').getAttribute('parcel-shape'), 'EPSG:3857');">[dxf_text]</a><br/>
<b>Contenido:</b> [contenido]<br/>
<hr/>

search_header.html

<!-- MapServer Template -->
<a target="_blank" href="php/mailing_labels.php?queryid=[QUERYID]&output=pdf">PDF Mailing Labels</a><br/>
<a target="_blank" href="php/mailing_labels.php?queryid=[QUERYID]&output=html">HTML Mailing Labels</a><br/>
<a target="_blank" href="php/mailing_labels.php?queryid=[QUERYID]&output=csv">CSV Mailing Labels</a><br/>
<br/>
<div style="display: [SHOW_FOLLOWUP]"/>
<a href="javascript:GeoMOOSE.startService('buffered_select_followup', {shape: '[SHAPE_WKT]', select_layer: '[SELECT_LAYER]', query_layer: '[SELECT_LAYER]', selection_buffer: [SELECTION_BUFFER]})">Buffer these results</a>
<br/><br/>
</div>


select_result.html

<!-- MapServer Template -->
<table>
<tr>
<td><b>IDENTIFICADOR:</b></td><td>[dxf_text]</td>
</tr>
<tr>
<td><b>Contenido:</b></td>
<td>[contenido]</td>
</tr>
<tr>
<td><b>Tipo Ubicación:</b></td>
<td>[tipo_ubica]</td>
</tr>
<tr>
<td><b>Tipo Uso:</b></td>
<td>[tipo_uso]</td>
</tr>
<tr>
<td colspan="2"><hr/></td>
</tr>
</table>

----------------------------------------------------------------------------------------------------------

When I use the "Identify" tool, the result is always the same, only the ground coordinates of the point is displayed but does not display information postgis layer. For example:

 Detailed information for the area you clicked on the map ...
 Ground Coordinates
 X: 108.95263671875
 Y: 300.091796875
  
 Disclaimer: This information is distributed as Being demonstation data only. You should not use the data for any other purposes.

Can anyone please help me?
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geomoose-users/attachments/20150522/901b0e8e/attachment-0001.html>


More information about the Geomoose-users mailing list