我尝试使用WMS在网络上显示geotiff格式的栅格地图。我想对光栅文件进行分类。我怎样才能做到这一点?我使用mapserver for windows。以下是我的.map文件。 我得到的是
MAP
NAME PM10
IMAGECOLOR 255 255 255
SIZE 600 800
IMAGETYPE PNG24 ## use AGG to for anti-aliassing
OUTPUTFORMAT
NAME 'AGG'
DRIVER AGG/PNG
MIMETYPE "image/png"
IMAGEMODE RGB
EXTENSION "png"
END # outputformat
PROJECTION
"init=epsg:3035" #latlon on etrs 1989 laea
END
EXTENT 3487500 2297500 4402500 3202500 # meters extents of region2
WEB
IMAGEPATH "c:/tmp/ms_tmp/"
IMAGEURL "/ms_tmp/"
METADATA
"ows_enable_request" "*"
"map" "C:/ms4w/apps/airpollution/config.map"
"ows_schemas_location" "http://schemas.opengeospatial.net"
"ows_title" "Sample WMS"
"ows_enable_request" "*"
"ows_onlineresource" "http://localhost:7070/cgi-bin/mapserv.exe? map=C:/ms4w/apps/airpollution/config.map&"
"ows_srs" "EPSG:3035 " #latlon
"wms_feature_info_mime_type" "text/plain"
"wms_feature_info_mime_type" "text/html"
"wms_server_version" "1.1.1"
"wms_formatlist" "image/png,image/gif,image/jpeg, image/geotiff"
"wms_format" "image/geotiff"
END #metadata
END #web
LAYER
NAME "pm10"
DATA "pm10.tif"
TYPE RASTER
STATUS ON
METADATA
"ows_title" "pollution"
END #metadata
PROJECTION
"init=epsg:3035"
END #projection
CLASSITEM "[pixel]"
# class using simple string comparison, equivelent to ([pixel] = 0)
CLASS
EXPRESSION "0"
STYLE
COLOR 20 20 20
END
END
# class using an EXPRESSION using only [pixel].
CLASS
EXPRESSION ([pixel] >= 0AND [pixel] < 7)
STYLE
COLOR 255 0 0
END
CLASS
EXPRESSION ([pixel] >= 7AND [pixel] < 20)
STYLE
COLOR 0 255 0
END
END
CLASS
EXPRESSION ([pixel] >= 7AND [pixel] < 50)
STYLE
COLOR 0 0 255
END
END
END #layer pm10
END #map
我得到的回应是这张图片
似乎它只读第3行
IMAGECOLOR 255 255 255
答案 0 :(得分:3)
我不太了解地图服务器,但我知道您可以使用SLD(样式化图层描述符)从WMS设置Rasters样式,这只是一个xml文件,您可以根据OGC标准传递WMS请求。
换句话说:您可以在XML架构中指定分类。下面是一个简单的SLD示例,它将光栅黑色中的所有内容设置为除白色像素之外的样式,这些像素的样式为不透明。
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
<NamedLayer>
<Name>undefined</Name>
<UserStyle>
<Name>rasterr</Name>
<Title>Rasterr</Title>
<Abstract>A simple raaster style</Abstract>
<FeatureTypeStyle>
<FeatureTypeName>Feature</FeatureTypeName>
<Rule>
<RasterSymbolizer>
<Opacity>1.0</Opacity>
<ColorMap>
<ColorMapEntry color="#ffffff" quantity="0" opacity="0.0" />
<ColorMapEntry color="#000000" quantity="1" />
<ColorMapEntry color="#000000" quantity="2" />
<ColorMapEntry color="#000000" quantity="3" />
<ColorMapEntry color="#000000" quantity="4" />
<ColorMapEntry color="#000000" quantity="5" />
<ColorMapEntry color="#000000" quantity="6" />
<ColorMapEntry color="#000000" quantity="7" />
<ColorMapEntry color="#000000" quantity="8" />
<ColorMapEntry color="#000000" quantity="9" />
<ColorMapEntry color="#000000" quantity="10" />
</ColorMap>
</RasterSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
像这样传递SLD:
http://demo.mapserver.org/cgi-bin/wms?SERVICE=wms&VERSION=1.1.1&REQUEST=GetMap&LAYERS=country_bounds&SLD=http://demo.mapserver.org/ogc-demos/map/sld/sld_line_simple.xml
在这里阅读更多内容:
http://mapserver.org/ogc/sld.html - 这适用于mapserver,使用RasterSymbolizer和ColorMap进行分类。在该页面上还描述了色彩映射的工作原理。