ArcXML学习笔记(二)

类别:编程语言 点击:0 评论:0 推荐:


由<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 就是多了一个标注的字段
 

本文地址:http://com.8s8s.com/it/it24210.htm