理解ArcIMS投影元素
生活随笔
收集整理的這篇文章主要介紹了
理解ArcIMS投影元素
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
ArcIMS 中的坐標(biāo)系統(tǒng)由 ArcIMS 空間服務(wù)器( Spatial Server )通過三個 ArcXML 投影( projection )元素來管理:???COORDSYS -輸入的數(shù)據(jù)圖層的投影
???FEATURECOORDSYS -地圖服務(wù)的輸出投影
???FILTERCOORDSYS -外包矩形框( envelope )或地圖配置文件中空間過濾( Spatial filters )條件的坐標(biāo)系統(tǒng)
每個投影元素通過 id 屬性或字符串的定義( string 屬性)作為指向坐標(biāo)系統(tǒng)的引用。 id 屬性只用一個編號就可以引用預(yù)定義的坐標(biāo)系統(tǒng),非常快速。而 string 屬性描述坐標(biāo)系統(tǒng)的所有參數(shù),包括基準(zhǔn)面 (datum), 單位 (units) 和起始子午線 (meridians) ,以及其它一些可進(jìn)行基準(zhǔn)面轉(zhuǎn)換的可選參數(shù)。在 ArcXML Programmer's Reference Guide 文檔中 Projection Element 部分 有詳盡的關(guān)于 ArcIMS 支持的坐標(biāo)系統(tǒng)、基準(zhǔn)面轉(zhuǎn)換,以及 id 編號和定義字符串的描述。
所有的坐標(biāo)系統(tǒng)都可納入地理和投影兩大類。地理坐標(biāo)系統(tǒng)是三維的,由經(jīng)緯度描述位置。在投影坐標(biāo)系統(tǒng)中,地球表面投影到二維平面上,由米或英尺來定位,叫做平面坐標(biāo)或笛卡兒坐標(biāo)。
輸入圖層的投影
地圖配置文件中的每個層都必須有坐標(biāo)系統(tǒng)。 COORDSYS 是定義數(shù)據(jù)層的投影元數(shù)據(jù)的方法之一。請注意該元素只用于申明數(shù)據(jù)層的投影 , 而非對層的投影進(jìn)行轉(zhuǎn)換。它可以用于定義 shapefiles, 使用 ArcSDE for coverage 的 coverages , ArcSDE 圖層,支持的柵格圖像和 acetate 圖層。
大多數(shù)情況下, COORDSYS 元素不是地圖配置文件的必要元素。當(dāng)下列情況存在時,需要采用該元素:
???沒有定義 shapefile 的投影文件(后綴 *.prj )
???沒有定義 ArcSDE for coverage 的 .prj 文件
???ArcSDE 中沒有空間參考信息表
???需要層的基準(zhǔn)面轉(zhuǎn)換信息
???使用柵格圖層
對于沒有投影信息的輸入圖層,可在文本編輯器或 XML 編輯器中將 COORDSYS 元素加入到地圖配置文件中。當(dāng)使用了非英文字符時,請確認(rèn) XML 編輯器支持 UTF-8 的編碼方式。 COORDSYS 元素是 LAYER 元素的子元素,如果即沒有 .prj 文件、空間參考表,也沒有 COORDSYS 元素,圖層就不能進(jìn)行正確的投影。
在地圖配置文件中添加投影元素
在地圖配置文件中, FEATURECOORDSYS 元素指明 ArcIMS 服務(wù)的輸出坐標(biāo)系統(tǒng)。 FILTERCOORDSYS 指明文件中的外包矩形框或者空間過濾條件的坐標(biāo)系統(tǒng)。這些元素都是 PROPERTIES 元素的子元素。
在 ArcIMS Author 中創(chuàng)建地圖配置文件時,也定義了 ArcIMS 服務(wù)的 ENVELOPE 元 素中的范圍屬性。所有的地圖配置文件必須包含 ENVELOPE 元素。當(dāng)定義 FILTERCOORDSYS 元素時,請確信坐標(biāo)系統(tǒng)元素與 ENVELOPE 的單位匹配。
當(dāng)?shù)貓D配置文件中包含 FILTERCOORDSYS 時,就必須包含 FEATURECOORDSYS 元素。而且 FILTERCOORDSYS 和 FEATURECOORDSYS 的值必須相同,并且成為服務(wù)器端默認(rèn)的投影方式。
地圖配置文件舉例:
<?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"/>
<FEATURECOORDSYS id="54030" />
<FILTERCOORDSYS id="54030" />
<ENVELOPE minx="-16986727.8564406" miny="-12740045.8907383" maxx="16986727.8564406" maxy="12740045.8939226" />
</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 )用于指明兩個投影元素的坐標(biāo)系統(tǒng)。因為 FEATURECOORDSYS 元素指明服務(wù)輸出的投影,那么任何由該地圖配置文件生成的 ArcIMS 服務(wù)都與該元素指明的坐標(biāo)系統(tǒng)相匹配,見圖 1 。 當(dāng)?shù)貓D配置文件中含有 FEATURECOORDSYS 元素時, MAPUNITS 元素會被忽略。 ArcIMS 空間服務(wù)器根據(jù) FEATURECOORDSYS 元素定義的坐標(biāo)系統(tǒng)來決定正確的地圖單位。
響應(yīng)客戶端請求,動態(tài)進(jìn)行投影轉(zhuǎn)換
發(fā)送請求:
對于地圖配置文件例 1 中相應(yīng)的地圖服務(wù),發(fā)送包含投影元素的 GET_IMAGE 請求:
<?xml version="1.0" encoding="UTF-8" ?>
<ARCXML version="1.1">
??<REQUEST>
????<GET_IMAGE>
??????<PROPERTIES>
????????<FILTERCOORDSYS id="54008" />
????????<FEATURECOORDSYS id="54008" />
??????</PROPERTIES>
????</GET_IMAGE>
??</REQUEST>
</ARCXML>
因為指定了轉(zhuǎn)換的投影,所以在服務(wù)器返回的圖片(如圖 2 )中,兩圖層都轉(zhuǎn)換成了 id 為 54008 的 Sinusoidal 投影。
請注意:在請求 (request) 中, ENVELOPE 的值與 FILTERCOORDSYS 一致;在 response( 響應(yīng) ) 中, ENVELOPE 與 FEATURECOORDSYS 一致。
性能和處理時間
進(jìn)行投影轉(zhuǎn)換非常耗時 , 較好的解決辦法:準(zhǔn)備好相應(yīng)投影的數(shù)據(jù),以減少對投影元素的使用。即建立網(wǎng)站時使用的數(shù)據(jù),已經(jīng)符合投影要求,而不需要再進(jìn)行投影轉(zhuǎn)換。
???FEATURECOORDSYS -地圖服務(wù)的輸出投影
???FILTERCOORDSYS -外包矩形框( envelope )或地圖配置文件中空間過濾( Spatial filters )條件的坐標(biāo)系統(tǒng)
每個投影元素通過 id 屬性或字符串的定義( string 屬性)作為指向坐標(biāo)系統(tǒng)的引用。 id 屬性只用一個編號就可以引用預(yù)定義的坐標(biāo)系統(tǒng),非常快速。而 string 屬性描述坐標(biāo)系統(tǒng)的所有參數(shù),包括基準(zhǔn)面 (datum), 單位 (units) 和起始子午線 (meridians) ,以及其它一些可進(jìn)行基準(zhǔn)面轉(zhuǎn)換的可選參數(shù)。在 ArcXML Programmer's Reference Guide 文檔中 Projection Element 部分 有詳盡的關(guān)于 ArcIMS 支持的坐標(biāo)系統(tǒng)、基準(zhǔn)面轉(zhuǎn)換,以及 id 編號和定義字符串的描述。
所有的坐標(biāo)系統(tǒng)都可納入地理和投影兩大類。地理坐標(biāo)系統(tǒng)是三維的,由經(jīng)緯度描述位置。在投影坐標(biāo)系統(tǒng)中,地球表面投影到二維平面上,由米或英尺來定位,叫做平面坐標(biāo)或笛卡兒坐標(biāo)。
輸入圖層的投影
地圖配置文件中的每個層都必須有坐標(biāo)系統(tǒng)。 COORDSYS 是定義數(shù)據(jù)層的投影元數(shù)據(jù)的方法之一。請注意該元素只用于申明數(shù)據(jù)層的投影 , 而非對層的投影進(jìn)行轉(zhuǎn)換。它可以用于定義 shapefiles, 使用 ArcSDE for coverage 的 coverages , ArcSDE 圖層,支持的柵格圖像和 acetate 圖層。
大多數(shù)情況下, COORDSYS 元素不是地圖配置文件的必要元素。當(dāng)下列情況存在時,需要采用該元素:
???沒有定義 shapefile 的投影文件(后綴 *.prj )
???沒有定義 ArcSDE for coverage 的 .prj 文件
???ArcSDE 中沒有空間參考信息表
???需要層的基準(zhǔn)面轉(zhuǎn)換信息
???使用柵格圖層
對于沒有投影信息的輸入圖層,可在文本編輯器或 XML 編輯器中將 COORDSYS 元素加入到地圖配置文件中。當(dāng)使用了非英文字符時,請確認(rèn) XML 編輯器支持 UTF-8 的編碼方式。 COORDSYS 元素是 LAYER 元素的子元素,如果即沒有 .prj 文件、空間參考表,也沒有 COORDSYS 元素,圖層就不能進(jìn)行正確的投影。
在地圖配置文件中添加投影元素
在地圖配置文件中, FEATURECOORDSYS 元素指明 ArcIMS 服務(wù)的輸出坐標(biāo)系統(tǒng)。 FILTERCOORDSYS 指明文件中的外包矩形框或者空間過濾條件的坐標(biāo)系統(tǒng)。這些元素都是 PROPERTIES 元素的子元素。
在 ArcIMS Author 中創(chuàng)建地圖配置文件時,也定義了 ArcIMS 服務(wù)的 ENVELOPE 元 素中的范圍屬性。所有的地圖配置文件必須包含 ENVELOPE 元素。當(dāng)定義 FILTERCOORDSYS 元素時,請確信坐標(biāo)系統(tǒng)元素與 ENVELOPE 的單位匹配。
當(dāng)?shù)貓D配置文件中包含 FILTERCOORDSYS 時,就必須包含 FEATURECOORDSYS 元素。而且 FILTERCOORDSYS 和 FEATURECOORDSYS 的值必須相同,并且成為服務(wù)器端默認(rèn)的投影方式。
地圖配置文件舉例:
<?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"/>
<FEATURECOORDSYS id="54030" />
<FILTERCOORDSYS id="54030" />
<ENVELOPE minx="-16986727.8564406" miny="-12740045.8907383" maxx="16986727.8564406" maxy="12740045.8939226" />
</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 )用于指明兩個投影元素的坐標(biāo)系統(tǒng)。因為 FEATURECOORDSYS 元素指明服務(wù)輸出的投影,那么任何由該地圖配置文件生成的 ArcIMS 服務(wù)都與該元素指明的坐標(biāo)系統(tǒng)相匹配,見圖 1 。 當(dāng)?shù)貓D配置文件中含有 FEATURECOORDSYS 元素時, MAPUNITS 元素會被忽略。 ArcIMS 空間服務(wù)器根據(jù) FEATURECOORDSYS 元素定義的坐標(biāo)系統(tǒng)來決定正確的地圖單位。
響應(yīng)客戶端請求,動態(tài)進(jìn)行投影轉(zhuǎn)換
發(fā)送請求:
對于地圖配置文件例 1 中相應(yīng)的地圖服務(wù),發(fā)送包含投影元素的 GET_IMAGE 請求:
<?xml version="1.0" encoding="UTF-8" ?>
<ARCXML version="1.1">
??<REQUEST>
????<GET_IMAGE>
??????<PROPERTIES>
????????<FILTERCOORDSYS id="54008" />
????????<FEATURECOORDSYS id="54008" />
??????</PROPERTIES>
????</GET_IMAGE>
??</REQUEST>
</ARCXML>
因為指定了轉(zhuǎn)換的投影,所以在服務(wù)器返回的圖片(如圖 2 )中,兩圖層都轉(zhuǎn)換成了 id 為 54008 的 Sinusoidal 投影。
請注意:在請求 (request) 中, ENVELOPE 的值與 FILTERCOORDSYS 一致;在 response( 響應(yīng) ) 中, ENVELOPE 與 FEATURECOORDSYS 一致。
性能和處理時間
進(jìn)行投影轉(zhuǎn)換非常耗時 , 較好的解決辦法:準(zhǔn)備好相應(yīng)投影的數(shù)據(jù),以減少對投影元素的使用。即建立網(wǎng)站時使用的數(shù)據(jù),已經(jīng)符合投影要求,而不需要再進(jìn)行投影轉(zhuǎn)換。
轉(zhuǎn)載于:https://www.cnblogs.com/googlegis/archive/2008/12/04/2979082.html
總結(jié)
以上是生活随笔為你收集整理的理解ArcIMS投影元素的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ArcGIS.Server.9.3和Ar
- 下一篇: 解决神州数码校园上网客服端软件不能在Wi