[mapserver-users] copyright, logos, etc
Eichner, Andreas - SID
Andreas.Eichner at sid.sachsen.de
Wed Feb 11 05:32:54 PST 2015
> what I really need to do is to
> make an SQL query (something like select name from map where id=%MYID%)
> and use that attribute in the TEXT part of the FEATURE section (something
> like FEATURE POINTS x y END TEXT "Species name: [name]" END)
>
> Any idea is welcome on how to do that in the "Mapserver way" ..
>
I have not test it but I would suggest replacing the inlined feature with a OGR point layer connected to a MYSQL view or a OGR VRT datasource that associates every line with the position of the annotation.
1) MYSQL view:
CREATE OR REPLACE VIEW species_annotation AS SELECT id, GeomFromText('POINT(60 -10)') AS Shape, name FROM map;
LAYER
...
# FEATURE
# POINTS
# 60 -10 # the offset (from lower left) in pixels
# END # Points
# TEXT "© xyz company 2006" # this is your displaying text
# END # Feature
CONNECTIONTYPE ogr
CONNECTION 'MYSQL: ...'
DATA 'species_annotation'
LABELITEM 'name'
FILTER ([id]=%MYID%)
...
END # Layer
2) OGR VRT datasource:
In species_annotation.vrt:
<OGRVRTDataSource>
<OGRVRTLayer name="species_annotation">
<SrcDataSource>MYSQL: ...</SrcDataSource>
<SrcSQL>SELECT id, 60 as x, -10 as y, name FROM map</SrcSQL>
<FID>id</FID>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>NULL</LayerSRS>
<GeometryField encoding="PointFromColumns" x="x" y="y" reportSrcColumn="false" />
</OGRVRTLayer>
</OGRVRTDataSource>
Test with: ogrinfo -al species_annotation.vrt -fid <existing id>
LAYER
...
CONNECTIONTYPE ogr
CONNECTION 'species_annotation.vrt'
DATA 'species_annotation'
LABELITEM 'name'
FILTER ([id] = %MYID%)
...
END # Layer
HTH
More information about the MapServer-users
mailing list