ArcXML学习笔记

                                                        ArcXML学习笔记()

一、概论:
配置文件分为四种:
 1>
用于Image ServiceFeature 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服务器之间通讯,由ArcIMSauthor编辑、输出;
 2.
每一个地图服务指向一个AXL文件;

用于Image ServiceFeature Service的地图配置文件
 
一般来说,地图配置文件作为对ArcIMS服务的输入,提供图层默认的属性和表现方式,而Request的参数则会覆盖地图配置文件中图层默认的属性和绘图方式,但Request的如果没有相应参数指令覆盖的话,ArcIMS service将使用地图配置文件中的默认值。
 **
对含非英文字符的Layer Namefont Name必须用AuthorXML编辑器编辑;
 **
地图配置文件不包含数据源(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>
通过定义xy坐标的最大值和最小值定义了一个四边形 
    <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_IMAGEGET_FEATURESrequests中将被忽略,SERVICEINFOResponse中有效
  
   <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 Instancepassword是否加密
     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 就是多了一个标注的字段
 

                       

 

 

 

posted on 2007-05-16 08:54  GIS云中飞鹏  阅读(734)  评论(0编辑  收藏  举报

导航