ArcXML学习笔记

                                                        ArcXML学习笔记(一)

一、概论:
配置文件分为四种:
 1>用于Image Service和Feature Service的地图配置文件(map configuration file),
  由ArcIMS Author生成,输出为ArcXML;
 2>用于ArcMap Server的地图配置文件(map configuration file),
  由ArcMap生成,输出为ArcMap文件( *.mxd , *.pmf )
 3>Viewer configuration file
 4>default.axl

 1. AXL用于客户浏览器与ArcIMS服务器之间通讯,由ArcIMS的author编辑、输出;
 2. 每一个地图服务指向一个AXL文件;

用于Image Service和Feature Service的地图配置文件
 一般来说,地图配置文件作为对ArcIMS服务的输入,提供图层默认的属性和表现方式,而Request的参数则会覆盖地图配置文件中图层默认的属性和绘图方式,但Request的如果没有相应参数指令覆盖的话,ArcIMS service将使用地图配置文件中的默认值。
 ** 对含非英文字符的Layer Name或font Name必须用Author或XML编辑器编辑;
 ** 地图配置文件不包含数据源(Data Source),文件中只有对其的引用,地图配置文件只包含默认的  对地图的属性操作和绘图方式;

地图配置文件的构成:
 1><?xml version="1.0" encoding="UTF-8"?> :prolog(序),通用XML文件开头的定义
 2><ARCXML version="1.1">元素,出现在所有ArcXML文件中;
 3><CONFIG>元素对,表示是配置文件;
          |
 4>     |-- <ENVIRONMENT>元素对,包含本地配置; 
          |         |-- <LOCALE\>
          |         |-- <UIFONT\>
          |         |-- <SEPARATORS\>
          |         |-- <SCREEN\>
          |
 5>     |-- <MAP>元素对,包含地图配置。     
              |-- <PROPERTIES> 
              |          |-- <ENVELOPE>  //范围
              |          |-- <MAPUNITS>  //单位
              |
              |-- <WORKSPACES>
              |          |-- <SHAPEWORKSPACE> //纪录所有Shape文件所在目录
              |          |    (某图层所对应的具体Shape文件在<LAYER>中记录)
              |          |-- <IMAGEWORKSPACE> 
              |          |-- <SDEWORKSPACE> //纪录所有SDE表所在服务器信息
              |          |(某图层所对应的SDE表名在<LAYER>中记录) 
              |-- <LAYER>
 
<ENVIRONMENT>详解: 
  包含:<LOCALE\> 定义 国家、语言
   <UIFONT\> 定义 ArcExplore4,Java Viewer默认字体  
   <SEPARATORS\>定义 ts属性定义所有坐标(x , y)点之间的分隔符;
      cs属性定义分隔x坐标和y坐标的分隔符;
   <SCREEN\> 定义 默认客户端分辨率所用参数;dpi="96"为 1024 x 768
  例子:
   <ENVIRONMENT>
         <LOCALE country="CN" language="zh" variant="" />
         <UIFONT color="0,0,0" name="Arial" size="12" style="regular" />
    <SEPARATORS cs=" " ts=";"/>
               <SCREEN dpi="96" />
        </ENVIRONMENT>
 <MAP>
  包含:<PROPERTIES> 提供定义一个ArcIMS service所需属性框架,包含地图图像初始长度与宽度,最大长宽范围,单位,当前投影等。
     <WORKSPACES> 提供创建地图图层所需数据的存放路径
     <LAYER>  每一个LAYER元素应用于一个图层,包含此图层数据如何符号化信息。
  
<PROPERTIES>详解: 
   必须包含<ENVELOPE>,在地图配置文件中<ENVELOPE>定义长宽范围
   <ENVELOPE>通过定义x、y坐标的最大值和最小值定义了一个四边形 
    <ENVELOPE minx="115.16805678807434"
      miny="39.39748735639008"
      maxx="117.50695799536"
      maxy="41.0590057298794"
      name="Initial_Extent" />
   name="Initial_Extent"时,说明第一次访问地图图像时的初始大小;
   name="Extent_Limit"时,说明地图最大可放大限度。Extent_Limit在含有GET_IMAGE和GET_FEATURES的requests中将被忽略,SERVICEINFO的Response中有效
  
   <MAPUNITS>定义地图中所用数据的单位
    units ="decimal_degrees" 经纬度
    units ="feet"   英尺
    units ="meters"   米
   <PROPERTIES>包含FEATURECOORDSYS and FILTERCOORDSYS 时
   <MAPUNITS>由ArcIMS Spatial Server自动选择,地图配置文件中<MAPUNITS>被忽略。
  
  <WORKSPACES>详解: 
   包含:<SHAPEWORKSPACE
     name="shp_ws-0"   //WORKSPACE的名字,在数据集中必须唯一
     directory="c:\ESRIDATA" //包含Shape文件的路径
    />
      <IMAGEWORKSPACE
     name="jai_ws-1"
     directory="c:\ESRIDATA" //包含Image文件的路径
    />
      <SDEWORKSPACE
     name="sde_ws-314"
     server="172.18.2.6"
     instance="port:5151"  //SDE Instance的port号,
         //格式为"port:端口号"。
         //如为SDE直接连接,
         //则格式为"sde:<database_vendor>"
         //目前有: "sde:oracle" (Oracle 8i),
         //  "sde:oracle9i" (Oracle 9i),
         //  "sde:sqlserver".
     database=""
     user="mapuser"
     encrypted="true"   //访问ArcSDE Instance的password是否加密
     password="QKWRIEUXAEFIJT"
         //如为SDE直接连接,则密码后必须加
         //"@<net8 service name>" 
     geoindexdir="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\"
         //geocoding index 创建的目录,
         //Windows下默认的目录是"temp"
         //Unix下默认的目录是 /tmp
    />

 

                                                   ArcXML学习笔记(二)


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

                       

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值