ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上
http://hi.baidu.com/wiselyman/blog/item/d2dbd6f9dc83dc51242df2e2.html
?
我自己有個廠區(qū)的地圖是cad的,轉(zhuǎn)換為shape格式。然后將這個小地圖正確的放置到google maps 上海市的大地圖上的。
網(wǎng)上資料1:
如果要將自己的數(shù)據(jù)與ArcGIS online的數(shù)據(jù)疊加使用,那么:1、應(yīng)該選擇后者為Primary Map Resource(有一種情況下,可以將自己的服務(wù)作為Primary Map Resource,就是自己數(shù)據(jù)的坐標系與ArcGIS Online或Google Map的坐標系相同,但cache的比例尺級別只是它們其中一個子集。);2、對于自己數(shù)據(jù)的地圖文檔,在data frame中將坐標系選擇成Predefined > Geographic Coordinate Systems > World > WGS 1984,ArcMap會將你的數(shù)據(jù)動態(tài)投影到該坐標系下;3、做cache的時候選擇load an existing tiling scheme from ArcGIS Online Services,這樣能保證比例尺級別與其相同,ArcGIS Online默認有十幾級cache,對于自己的數(shù)據(jù),可以創(chuàng)建其中的幾級,但可能出現(xiàn)的情況請參照前面的分析。對于要和Google Map疊加的數(shù)據(jù),步驟也是上面的1、2、3,注意在2中要選擇:Predefined > Projected Coordinate Systems > World > WGS 1984 Web Mercator。
???????? 如果在步驟3中,點擊load an existing tiling scheme時出錯,那很有可能是你跳過了步驟2。
網(wǎng)上資料2:
使用空間參考
地圖上的要素指的的是實際世界中的物體的位置。這些物體的在球面上的位置是用經(jīng)緯度來衡量的,這就是我們所知道的geographic coordinates。雖然經(jīng)緯度可以準確的表示物體在球面上的位置,但是它們不是測量的單位;為了解決測量問題,數(shù)據(jù)經(jīng)常通過projected coordinate system.,從3D的地理坐標地圖轉(zhuǎn)換為2D的平面。投影坐標系統(tǒng)描述到一個原點是(0,0)---(X軸代表東西和y軸代表北南的坐標系)的距離
因為地球是圓的地圖是平的,從彎曲的球面獲得平面的信心需要一個轉(zhuǎn)換叫做map projection(地圖投影)。一個地圖投影將經(jīng)緯度坐標轉(zhuǎn)換為一個projected coordinate system的x,y坐標。
術(shù)語坐標系統(tǒng)(coordinate system),它包含地理和投影坐標系統(tǒng)。它被用來描述投影、數(shù)據(jù)、單位和子午線信息。
每一個坐標系統(tǒng)通過眾所周知的ID(WKID)和一個字符串(WKT)來定義。
?
?
?
| ????????? 設(shè)計自己的地圖疊加到 Google Maps或者 MicroSoft Vitual Earth | |
| Release 9.3 ArcGIS JavaScript? Extension for the Google Maps? API Release 9.3 ArcGIS JavaScript? Extension for Microsoft Virtual Earth? | ? |
ArcGIS Server 9.3包含Google Maps和Mircosoft Virtual Earth API的JavaScript擴展包。如果你想要使用這些擴展包來添加你的地圖疊加到Google Maps或者MicroSoft Virtual Earth上的話,按照下面的流程創(chuàng)建你自己的地圖:
Author the map
你將在ArcMap中創(chuàng)建地圖并添加數(shù)據(jù)且給以合適的標注。當你設(shè)計地圖的時候,你將需要使用和Google Maps和microsoft virtual earth相同的坐標系統(tǒng)和比例尺。
?
Change the coordinate system to WGS 1984 Web Mercator
設(shè)計地圖要做的第一件事情就是將數(shù)據(jù)框架的坐標系統(tǒng)改成和Google Maps 和microsoft virtual earth一樣,即WGS 1984 Web Mercator。為了實現(xiàn)改變坐標系統(tǒng),按照下面的步驟:
??? 1、在ArcMap TOC(table of contents)上,右鍵點擊data frame 名稱(默認是Layers),并選擇properties(屬性)
?? 2、點擊Coordinate System 標簽
?? 3、點擊 predefined->Projected Coordinate Systems->World->WSGS 1984 Web Mercator,然后點擊“OK”
注意:如果你數(shù)據(jù)的地理坐標系統(tǒng)(geographic coordinate system)不是使用WGS1984 datum或者 GRS80 橢圓體(ellipsoid),你將需要將你的數(shù)據(jù)進行轉(zhuǎn)換來正確的適應(yīng)Google Maps和Virtual Earth。NAD83就是一個使用GRS80橢圓體的地理坐標系統(tǒng)例子。不適用WGS 1984 datum或者FRS80 橢圓體的地理坐標系統(tǒng)還包括NAD27,ED50,等等,更多請看ESRI Knowledge Base Article 34749 (介紹如果進行這些轉(zhuǎn)換)
?
Design at the Google Maps and Microsoft Virtual Earth scales
你地圖的用戶將會看到Google Maps和microsoft virtual earth使用的比例尺,所以你在設(shè)計你的比例尺的時候只能使用這些比例尺。但是你怎么知道這些比例尺都是多少呢?
你可以加載Google maps和microsoft virtual earth 的比例尺到你的 Arcmap 比例尺下拉列表(dropdown list),按照下列步驟:
??? 1、將txt文件gmaps_ve_scales.txt 拷到一個你容易記住的地方。(這個文件放在C:/Inetpub/wwwroot/ArcGIS/Manager/Help/gmaps_ve_scales.txt)
?? 2、打開 ArcMap 并且添加一些數(shù)據(jù)
?? 3、點擊比例尺下拉列表(dropdown list of scales)并且點擊自定義這個列表
?? 4、點擊Load
?? 5、打開gmaps_ve_scales.txt文件
?? 6、點擊OK使你的更改生效。你將看到所有的google maps/virtual earth的比例尺很輕松的顯示了。
你僅僅需要將你的地圖在對應(yīng)比例尺下的外觀做好就可以了,因為在每個比例尺下要做地圖緩存。如果你不打算對大比例尺做緩存的話,你不必在這些比例尺做任何設(shè)計工作。
在你的圖層上設(shè)置比例尺范圍(scale ranges)可以做到在不同的比例尺上可以見到不同的內(nèi)容。當你設(shè)置你的比例尺范圍(scale ranges)的時候,避免在你編輯的比例尺上或者附近切換圖層關(guān)閉或者打開。
你也許需要復制你的圖層,這樣你可以給它們在不同的比例尺以不同的符號。Arcmap 的toc可以包含一個圖層的多個拷貝。每一個可以有自己的符號和比例尺范圍。復制圖層的步驟是:在arcmap toc 中郵件點擊它并點擊Copy。然后右鍵點擊data frame 名稱,再點擊 Paste Layer(s)。
Publish the map as a service
在你完成創(chuàng)建你的地圖文檔(.xmd)之后,你需要將它發(fā)布成一個Arcgis Server map service,這樣你才能在你的JavaScript應(yīng)用中使用它。最早的一種方式是在arccatalog上右鍵點擊地圖文檔,再點擊 publish to arcgis server
Learn more about publishing a GIS resource to the server.
Create a map cache
Google maps和vritual eart訪問速度很快的一個原因就是他們使用了服務(wù)器端的地圖緩存,這就意味著事先生成的圖片被存儲在服務(wù)器端,這樣你就可以很快的通過一個URL很快的訪問了。使用arcgis server,你可以為你的地圖創(chuàng)建一個類似的緩存。創(chuàng)建地圖緩存是優(yōu)化地圖表現(xiàn)的所推薦的(也是在使用Arcgis JavaScript extension for virtual earth必需的)。
地圖緩存(Map caches )部分包含了很多關(guān)于計劃、創(chuàng)建、和更新地圖緩存的細節(jié)。創(chuàng)建緩存的方式有很多種,下面是關(guān)鍵的步驟:
??? 1、在arccatalog中右鍵點擊服務(wù)(service),然后點擊Service properties
??? 2、點擊Caching標簽,選擇“Using tiles from a cache that you will define below”來畫地圖
??? 3、點擊“Load tiling scheme from”,然后在下拉列表選擇Microsoft Virtual Earth / Google Maps
??? 4、如果有必要,更改緩存目錄
??? 5、點擊create tiles,緩存工具將顯示許多數(shù)據(jù)已經(jīng)被填在上面。
??? 6、不要勾選你不需要做緩存的比例尺。如果你的地圖覆蓋一個很大的區(qū)域,你在大比例尺下(zoom in)將看不到它,所以你不要勾選這些大比例尺
??? 7、設(shè)置更新模式為Recreate All tiles 然后點擊OK。工具將會創(chuàng)建這些tiles
依賴于你的地圖有多大和你選擇了哪些比例尺,創(chuàng)建所有的tiles將是一個很長的時間。見Planning a map cache 了解更多關(guān)于影響創(chuàng)建緩存時間的因素。
Once you've finished creating the cache, you're ready to use your map with Google Maps or Microsoft Virtual Earth. See Developing with ArcGIS Server: An Overview to learn how you can develop JavaScript applications that overlay your maps with Google Maps and Microsoft Virtual Earth.
總結(jié)
以上是生活随笔為你收集整理的ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于stm32f103c8t6的Flas
- 下一篇: 力科示波器 matlab,有没有人研究过