由<map>元素定义地图的配置,map由 图层 组成用<layer>元素表示,图层layer包含两个问题 1,从哪些数据集里得到数据; 2,这些数据如何绘制出来; 从而包括了: 1,dataset定义图层使用的数据集; 2,renderer定义在客户端如何显示图层;
dataset可以是一个图层,也可以是一组图层组合起来这样会使用partition元素
SimpleRenderer 使用同样的符号画所有的要素, ValueMapRenderer 根据图层表某列的不同值,或不同范围的值分别规定描绘的方法 ScaleDependentRenderer 仅仅画一个特定比例尺范围里的要素。 一层里的多个表现方法元素必须包含在一个GroupRenderer里。
关系如下图:
符号化: 将矢量信息转化为要表示的符号 基本上包含: 将点对象转化为相关符号 --SimpleMarkerSymbol 将线对象转化为相关符号 --SimpleLineSymbol 将面对象转化为相关符号 --SimplePolygonSymbol
各个Renderer元素包含各种Symbol元素; 详解: layer包含: id、name type= featureclass地图要素 /acetate 临时层(相当于一个铺在地图上的透明塑料布) /image 图像 maxscale/minscale 最大/最小比例尺
<SIMPLERENDERER> <SIMPLEPOLYGONSYMBOL fillcolor="0,208,0" boundary="false" /> </SIMPLERENDERER> 定义了对于简单多边形的填充颜色、不显示边界; 而GroupRenderer将不同的绘制方式组合起来; ValueMapRenderer指范围图,比如根据数据库某一个字段值来给该区域填充对应的颜色 比如有表示犯罪性质图层表有列: code ==== 1 一级谋杀 2 诈骗 3 偷盗 4 。。 将一级谋杀以三角形表示;诈骗以圆形表示; <VALUEMAPRENDERER lookupfield="CODE"> <EXACT value="1" label="Type 1"> <SIMPLEMARKERSYMBOL color="27,127,27" type="triangle" width="6" /> </EXACT> <EXACT value="2" label="Type 2"> <SIMPLEMARKERSYMBOL color="227,27,27" type="circle" width="10" /> </EXACT> <EXACT value="3" label="Type 3"> <TRUETYPEMARKERSYMBOL transparency="1.0" glowing="0,255,255" font="ESRI Cartography" fontstyle="bold" character="252" fontcolor="255,255,0" fontsize="16" /> </EXACT> <OTHER> <SIMPLEMARKERSYMBOL type="square" width="4" /> </OTHER> </VALUEMAPRENDERER> 这样一个图层,可根据他所在表某列的不同值,或不同范围的值分别描绘 <VALUEMAPRENDERER lookupfield="AREA"> <RANGE lower="0.0" upper="1000000.0" label="Small"> <GRADIENTFILLSYMBOL type="horizontal" startcolor="255,0,0" finishcolor="0,255,0" overlap="true" /> </RANGE> <RANGE lower="1000000.001" upper="3000000.000" label="Medium"> <SIMPLEPOLYGONSYMBOL filltype="cross" fillinterval="4" fillcolor="255,146,0" /> </RANGE> <RANGE lower="3000000.001" upper="10000000" label="Large"> <SIMPLEPOLYGONSYMBOL filltype="bdiagonal" fillinterval="6" fillcolor="255,37,0" /> </RANGE> <OTHER> <SIMPLEPOLYGONSYMBOL filltype="solid" fillcolor="128,128,128" /> </OTHER> </VALUEMAPRENDERER>
valueMaplabelrender 就是多了一个标注的字段

|