[mapserver-users] KML in mapserver

Eichner, Andreas - SID Andreas.Eichner at sid.sachsen.de
Tue Mar 10 00:22:30 PDT 2015


I would suggest using the "Style" attribute to classify your features.
From ogrinfo:

$ ogrinfo -al test.kml -where "OGR_GEOMETRY='LINESTRING'"
...
OGRFeature(Fibertech solution):1
  Name (String) = Westborough MSC - Build
...
  Style = @msn_ylw-pushpin4

OGRFeature(Fibertech solution):2
  Name (String) = Westborough MSC to Westborugh
...
  Style = @msn_ylw-pushpin8

So using CLASSITEM "Style" to classify your features might work:

LAYER
...
	CLASSITEM "Style"
	CLASS
		EXPRESSION "@msn_ylw-pushpin8"
		...
	END
	CLASS
		EXPRESSION "@msn_ylw-pushpin4"
		...
	END
END


> -----Ursprüngliche Nachricht-----
> Von: mapserver-users-bounces at lists.osgeo.org [mailto:mapserver-users-
> bounces at lists.osgeo.org] Im Auftrag von alok mathur
> Gesendet: Dienstag, 10. März 2015 05:38
> An: mapserver-users at lists.osgeo.org
> Betreff: [mapserver-users] KML in mapserver
> 
> Hi,
> 
> I have a single folder with multiple Placemarks of different geometries in
> an input KML file.
> And I want to create a .map file using KML as input source. As mapserver
> ignores KML styling so i need to give styling in mapserver for each layer.
> I want to give styling at each placemark. Could you please help me out how
> to do the same.
> 
> KML
> ---------------------------
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <kml xmlns="http://www.opengis.net/kml/2.2"
> xmlns:gx="http://www.google.com/kml/ext/2.2"
> xmlns:kml="http://www.opengis.net/kml/2.2"
> xmlns:atom="http://www.w3.org/2005/Atom">
> <Document>
> <Folder>
>             <name>Fibertech solution</name>
> 
>   <Placemark>
> <name>Westborough MSC - Build</name>
> <styleUrl>#msn_ylw-pushpin4</styleUrl>
> <LineString>
> <tessellate>1</tessellate>
> <coordinates>
> -71.58570500983306,42.28745742866225,0 -
> 71.58563778135751,42.28308954118536,0 -
> 71.58466087108053,42.28307704913402,0
> </coordinates>
> </LineString>
> </Placemark>
> <Placemark>
> <name>Westborough MSC to Westborugh</name>
> <styleUrl>#msn_ylw-pushpin8</styleUrl>
> <LineString>
> <tessellate>1</tessellate>
> <coordinates>
> -71.62172195712955,42.27186897741407,0 -
> 71.62194000095552,42.27189433043378,0 -
> 71.6225634332947,42.27210480296427,0 -
> 71.62308968672842,42.27236391420707,0 -
> 71.62394597288645,42.27309147863262,0 -
> 71.62737594489003,42.27740640295431,0 -
> 71.62822373584245,42.27893783334968,0 -
> 71.63091971519079,42.28164762788888,0 -
> 71.63207040059587,42.28370221254578,0 -
> 71.62599732629406,42.28418518334991,0 -
> 71.60795611539982,42.28517668969011,0 -
> 71.60267209851122,42.28504601944216,0 -
> 71.60188701357249,42.28516492137062,0 -
> 71.58850360403626,42.28849573666959,0 -
> 71.5858004650346,42.28852197680775,0 -71.58571706491037,42.2874804233345,0
> </coordinates>
> </LineString>
> </Placemark>
> <Placemark>
> <name>NEW Danbury</name>
> <Camera>
> <longitude>-73.45375129836707</longitude>
> <latitude>41.390460041635</latitude>
> <altitude>419.0806930250601</altitude>
> <heading>13.43312150541231</heading>
> <tilt>28.58299225276625</tilt>
> <roll>-0.685026358787494</roll>
> <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
> </Camera>
> <styleUrl>#msn_ylw-stars</styleUrl>
> <Point>
> <gx:drawOrder>1</gx:drawOrder>
> <coordinates>-73.45404626023216,41.3929335947184,0</coordinates>
> </Point>
> </Placemark>
> <Placemark>
> <name>NEW Scotland Amp</name>
> <LookAt>
> <longitude>-72.09703050755105</longitude>
> <latitude>41.69579944328172</latitude>
> <altitude>0</altitude>
> <heading>-0.790587312931665</heading>
> <tilt>19.0106770482321</tilt>
> <range>445.0511788150669</range>
> <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
> </LookAt>
> <styleUrl>#msn_ylw-stars</styleUrl>
> <Point>
> <gx:drawOrder>1</gx:drawOrder>
> <coordinates>-72.09643061038489,41.6960553015771,0</coordinates>
> </Point>
> </Placemark>
> </Folder>
> </Document>
> </kml>
> 
> 
> 
> MAP
> ------------------
> MAP
>   NAME "QGIS-MAP"
>   # Map image size
>   SIZE 500 400
>   UNITS meters
>   EXTENT -73.454046 41.392934 -71.584661 42.288522
>   #FONTSET './fonts/fonts.txt'
>   SYMBOLSET 'symbols.txt'
>   #PROJECTION
>   #  'proj=longlat'
>    # 'datum=WGS84'
>    # 'no_defs'
>   #END
>   PROJECTION
>        "init=epsg:4326"
>    END
> 
>   # Background color for the map canvas -- change as desired
>   IMAGECOLOR 255 255 255
>   IMAGEQUALITY 95
>   IMAGETYPE png
> 
>  OUTPUTFORMAT
>     NAME "png"
>     DRIVER GD/PNG
>     MIMETYPE "image/png"
>     IMAGEMODE RGBA
>     EXTENSION "png"
>     TRANSPARENT ON
>   END
> 
>   # Legend
>   LEGEND
>       IMAGECOLOR 255 255 255
>     STATUS ON
>     KEYSIZE 18 12
>     LABEL
>       TYPE BITMAP
>       SIZE MEDIUM
>       COLOR 0 0 89
>     END
>   END
> 
>   # Web interface definition. Only the template parameter
>   # is required to display a map. See MapServer documentation
>   WEB
>     # Set IMAGEPATH to the path where MapServer should
>     # write its output.
>     IMAGEPATH "/tmp/ms_tmp/"
> 
>     # Set IMAGEURL to the url that points to IMAGEPATH
>     # as defined in your web server configuration
>     IMAGEURL "/ms_tmp/"
> 
>     # WMS server settings
> METADATA
>       "wms_enable_request" "*"
>       "wms_srs" "EPSG:900913 EPSG:4326 EPSG:3857 EPSG:2154 EPSG:310642901
> EPSG:4171 EPSG:310024802 EPSG:310915814 EPSG:310486805 EPSG:310702807
> EPSG:310700806 EPSG:310547809 EPSG:310706808 EPSG:310642810 EPSG:310642801
> EPSG:310642812 EPSG:310032811 EPSG:310642813 EPSG:2986"
>       "labelcache_map_edge_buffer" "-10"
>       "wms_title" "osm fiber data"
>       "wms_onlineresource" "http://haxv-onecontrol-154/cgi-bin/mapserv?"
>       "ows_sld_enable" "true"
>    END
> 
> 
>     #Scale range at which web interface will operate
>     # Template and header/footer settings
>     # Only the template parameter is required to display a map. See
> MapServer documentation
>     #TEMPLATE 'fooOnlyForWMSGetFeatureInfo'
>   END
> 
> # Start of LAYER DEFINITIONS -----------------------------
>   LAYER
>    NAME "kml_line"
>    TYPE LINE
>    STATUS ON
>    CONNECTIONTYPE OGR
>    CONNECTION "doc_test.kml"
>    DATA "SELECT * FROM 'Fibertech solution' WHERE
> OGR_GEOMETRY='LINESTRING'"
>    LABELITEM "NAME"
>    CLASS
>      NAME "Fiber Data"
>      STYLE
>        COLOR 250 0 0
>        OUTLINECOLOR 255 255 255
>        SIZE 6
>      END
>    LABEL
>      SIZE GIANT
>      COLOR 0 0 0
>      OUTLINECOLOR 255 255 255
>      POSITION AUTO
>    END
>   END
> END
> #############
> # Start of LAYER DEFINITIONS -----------------------------
>   LAYER
>    NAME "kml_point"
>    TYPE POINT
>    STATUS DEFAULT
>    CONNECTIONTYPE OGR
>    CONNECTION "doc_test.kml"
>    DATA "SELECT * FROM 'Fibertech solution' WHERE OGR_GEOMETRY='POINT'"
>    LABELITEM "NAME"
>    #FILTER ('[OGR_GEOMETRY]' == 'POINT')
>    #PROCESSING_OPTION "NATIVE_FILTER=OGR_GEOMETRY='POINT'"
>    CLASS
>      NAME "Splice Point"
>      STYLE
>        COLOR 250 0 0
>        OUTLINECOLOR 255 255 255
>        SYMBOL 'marker2'
>        SIZE 16
>      END
>    LABEL
>      SIZE GIANT
>      COLOR 0 0 0
>      OUTLINECOLOR 255 255 255
>      POSITION AUTO
>    END
>   END
> END
> #############
> 
> END
> 
> --
> 
> 
> Alok Mathur



More information about the MapServer-users mailing list