? FEATURECOORDSYS -地图服务的输出投影
? FILTERCOORDSYS -外包矩形框( envelope )或地图配置文件中空间过滤( Spatial filters )条件的坐标系统
每个投影元素通过 id 属性或字符串的定义( string 属性)作为指向坐标系统的引用。 id 属性只用一个编号就可以引用预定义的坐标系统,非常快速
所有的坐标系统都可纳入地理和投影两大类。地理坐标系统是三维的,由经纬度描述位置。在投影坐标系统中,地球表面投影到二维平面上,由米或英尺来定位,叫做平面坐标或笛卡儿坐标。
输入图层的投影
地图配置文件中的每个层都必须有坐标系统。 COORDSYS 是定义数据层的投影元数据的方法
大多数情况下, COORDSYS 元素不是地图配置文件的必要元素。当下列情况存在时,需要
? 没有定义 shapefile 的投影文件(后缀 *.prj )
? 没有定义 ArcSDE for coverage 的 .prj 文件
? ArcSDE 中没有空间参考信息表
? 需要层的基准面转换信息
? 使用栅格图层
对于没有投影信息的输入图层,可在文本编辑器或 XML 编辑器中将 COORDSYS 元素加入到地图配置文件中。当使用了非英文
在地图配置文件中添加投影元素
在地图配置文件中, FEATURECOORDSYS 元素指明 ArcIMS 服务的输出坐标系统。 FILTERCOORDSYS 指明文件中的外包矩形框或者空间过滤条件的坐标系统。这些元素都是 PROPERTIES 元素的子元素。
在 ArcIMS Author 中创建地图配置文件时,也定义了 ArcIMS 服务的 ENVELOPE 元 素中的范围属性。所有的地图配置文件必须包含 ENVELOPE 元素。当定义 FILTERCOORDSYS 元素时,请确信坐标系统元素与 ENVELOPE 的单位匹配。
当地图配置文件中包含 FILTERCOORDSYS 时,就必须包含 FEATURECOORDSYS 元素。而且 FILTERCOORDSYS 和 FEATURECOORDSYS 的值必须相同,并且成为服务器端默认的投影方式。
地图配置文件举例:
<?xml version="1.0" encoding="UTF-8"?>
<ARCXML version="1.1">
<CONFIG>
<ENVIRONMENT>
<LOCALE country="US" language="en" variant=""/>
<UIFONT color="0,0,0" name="Arial" size="12" style="regular"/>
</ENVIRONMENT>
<MAP dynamic="true">
<PROPERTIES>
<MAPUNITS units="decimal_degrees"/>
</PROPERTIES>
<WORKSPACES>
<SHAPEWORKSPACE name="shp_ws-14" directory="E:\student\World"/>
</WORKSPACES>
<LAYER type="featureclass" name="World Grid" visible="true" id="Grid">
<DATASET name="grid" type="polygon" workspace="shp_ws-14"/>
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBOL boundarytransparency="1.0" filltransparency="1.0" fillcolor="69,138,195" boundarycaptype="round" boundarycolor="255,255,255"/>
</SIMPLERENDERER>
</LAYER>
<LAYER type="featureclass" name="Countries" visible="true" id="Countries">
<DATASET name="country" type="polygon" workspace="shp_ws-14"/>
<SIMPLERENDERER>
<SIMPLEPOLYGONSYMBO boundarytransparency="1.0" filltransparency="1.0" fillcolor="148,172,151" boundarycaptype="round" boundarycolor="64,64,64"/>
</SIMPLERENDERER>
</LAYER>
</MAP>
</CONFIG>
</ARCXML>
例中, World Robinson ( id = 54030 )用于指明两个投影元素的坐标系统。因为 FEATURECOORDSYS 元素指明服务输出的投影,那么任何由该地图配置文件生成的 ArcIMS 服务都与该元素指明的坐标系统相匹配,见图 1 。
响应客户端请求,动态进行投影转换
发送请求:
对于地图配置文件例 1 中相应的地图服务,发送包含投影元素的 GET_IMAGE 请求:
<?xml version="1.0" encoding="UTF-8" ?>
<ARCXML version="1.1">
<REQUEST>
<GET_IMAGE>
<PROPERTIES>
<FEATURECOORDSYS id="54008" />
</PROPERTIES>
</GET_IMAGE>
</REQUEST>
</ARCXML>
因为指定了转换的投影,所以在服务器返回的图片(如图 2 )中,两图层都转换成了 id 为 54008 的 Sinusoidal 投影。
性能和处理
进行投影转换非常耗时 , 较好的解决办法:准备好相应投影的数据,以减少对投影元素的使用。即建立网站