• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Python的ArcGIS Server地圖瓦片定時自動更新方法

      2013-09-28 07:43:24馬衛(wèi)春楊友長
      地理空間信息 2013年1期
      關(guān)鍵詞:管理器瓦片客戶端

      馬衛(wèi)春,楊友長

      (1.安徽省基礎(chǔ)測繪信息中心,安徽 合肥 230031)

      隨著互聯(lián)網(wǎng)地圖產(chǎn)業(yè)的蓬勃發(fā)展,如何在帶寬有限的情況下,快速、流暢地在客戶端中顯示電子地圖,已成為任何GIS產(chǎn)品都需要解決的核心技術(shù)問題。 目前,國內(nèi)外主要通過地圖緩存技術(shù)解決該問題,即按照一定的數(shù)學(xué)規(guī)則,把地圖切成一定規(guī)格的小圖片集保存到服務(wù)器上,當(dāng)用戶通過客戶端訪問地圖服務(wù)時,不是由服務(wù)器實時創(chuàng)建一個個地圖瓦片反饋給客戶端,而是在服務(wù)器端直接反饋預(yù)存于服務(wù)器上的地圖瓦片數(shù)據(jù),在客戶端拼接成地圖。這樣,既避免了實時創(chuàng)建地圖瓦片對服務(wù)器帶來的運算負(fù)擔(dān),也減少了客戶端的等待時間,大大改善了用戶體驗。

      Python是一門解釋型語言,因為不需要編譯和鏈接的時間,所以可以節(jié)省開發(fā)時間。解釋器能夠交互式使用,可以很方便地測試語言中的各種功能,便于編寫發(fā)布用的程序。Python屬于腳本編程,能夠使枯燥的數(shù)據(jù)處理工作自動化。地圖瓦片的更新涉及眾多操作步驟,使用Python編寫一個腳本,實現(xiàn)定時自動化執(zhí)行,非常適合。ArcGIS Server是ESRI公司出品的一個基于Web的企業(yè)級GIS解決方案。不僅具備發(fā)布地圖服務(wù)的功能,而且還能提供靈活的編輯和強大的空間分析能力。目前,它已經(jīng)成為地圖服務(wù)發(fā)布與WebGIS開發(fā)的重要平臺之一。本文以ArcGIS Server發(fā)布的地圖服務(wù)為基礎(chǔ),進(jìn)行地圖瓦片的定時自動更新方法的研究。

      1 Python API與ArcGIS Server發(fā)布地圖服務(wù)的機制

      1.1 Python API

      ArcGIS從9.0版本開始提供Python API函數(shù),經(jīng)過多年的不斷完善和擴充,截止到10.0版本,Python已成為了ArcGIS地理處理框架的重要組成部分。用戶可以運用ArcGIS提供的Python API開發(fā)包編寫腳本,實現(xiàn)空間數(shù)據(jù)的自動化批量處理,從而簡化工作流程,提高工作的自動化程度。

      1.2 ArcGIS Server

      ArcGIS Server通過一個服務(wù)器對象管理器和若干個服務(wù)器對象容器,實現(xiàn)對地圖服務(wù)資源的管理。服務(wù)器對象管理器,用來管理分布在一組服務(wù)器容器中的服務(wù)器對象。每個服務(wù)器對象容器中,存放著地圖資源的配置服務(wù),服務(wù)一旦被服務(wù)器對象管理器啟用,隨即按照服務(wù)中的配置規(guī)則,自動調(diào)用數(shù)據(jù)層中的數(shù)據(jù)資源,通過服務(wù)器對象管理器向外提供空間數(shù)據(jù)服務(wù),即由服務(wù)器對象管理器通過服務(wù)器對象容器,實現(xiàn)對地圖服務(wù)運行狀態(tài)的控制。

      2 地圖瓦片定時自動更新的實現(xiàn)

      地圖瓦片定時自動更新是通過在服務(wù)端制定一個定時執(zhí)行任務(wù)的方式實現(xiàn)的,即每天定時調(diào)用基于Python語言編寫的腳本程序,實現(xiàn)地圖瓦片的自動更新。地圖瓦片實現(xiàn)自動化更新的基礎(chǔ)如圖1所示,具體流程如圖2所示。

      圖1 地圖瓦片自動化更新的基礎(chǔ)

      圖2 地圖瓦片自動化更新的流程圖

      2.1 更新參數(shù)文件庫的建立

      新建一個ESRI文件庫,存放更新區(qū)域和更新數(shù)據(jù)2類信息。

      更新區(qū)域以面狀FeatureClass的形式存放,同時,輸入與該區(qū)域配套的更新參數(shù)。具體包括:更新數(shù)據(jù)所在的位置、用于更新的圖層名稱、待更新數(shù)據(jù)所在位置、待更新圖層的名稱、是否已更新完成、待更新的服務(wù)名稱、更新的比例尺級別以及更新時需要關(guān)閉的相關(guān)服務(wù)名稱。更新數(shù)據(jù)的表結(jié)構(gòu)需與待更新數(shù)據(jù)的表結(jié)構(gòu)一致。

      2.2 ArcGIS Server服務(wù)狀態(tài)的控制

      ArcGIS提供的Python API中未提供控制ArcGIS Server服務(wù)狀態(tài)的類或函數(shù), 而在地圖瓦片更新過程中,需要進(jìn)行服務(wù)的終止、啟動操作。為了解決這個問題,我們采用ArcGIS Server提供的AO開發(fā)包,編寫了一個利用ArcGIS Server SOM(服務(wù)對象管理器)控制地圖服務(wù)狀態(tài)的命令行程序。

      2.3 地圖瓦片更新的實現(xiàn)

      1)讀取更新區(qū)域的狀態(tài)信息。讀取“更新區(qū)域”是否已處理的狀態(tài)標(biāo)記信息,若已處理過,不再進(jìn)行更新操作;否則,繼續(xù)進(jìn)行更新操作。

      2)讀取更新區(qū)域的相關(guān)參數(shù)。讀取地圖瓦片更新所需要的更新區(qū)域、更新服務(wù)名稱、更新比例尺、更新數(shù)據(jù)所在位置、更新數(shù)據(jù)所在圖層、待更新數(shù)據(jù)所在位置、待更新數(shù)據(jù)所在圖層、需要關(guān)閉的相關(guān)服務(wù)名稱。

      service_name = getUpdateInfo(cacheFeatures,"MapSer viceName")

      scales = getUpdateInfo(cacheFeatures,"UpdateScales")

      3)更新數(shù)據(jù)。首先,調(diào)用控制ArcGIS Server服務(wù)狀態(tài)的命令行程序,停止待更新及相關(guān)地圖服務(wù);然后,刪除待更新數(shù)據(jù),用更新數(shù)據(jù)替代待更新數(shù)據(jù);最后,啟動待更新及相關(guān)地圖服務(wù)。

      //停止服務(wù)

      tempservicename ="AGSSOM.exe -x " +pname //pname地圖服務(wù)名稱

      os.system(tempservicename)

      //刪除待更新數(shù)據(jù)

      arcpy.Delete_management(OrigncacheFeatures,"")

      //更新數(shù)據(jù)替代待更新數(shù)據(jù)

      arcpy.CopyFeatures_management(UpdatecacheFeatue s,OrigncacheFeatures)

      //啟動服務(wù)

      tempservicename ="AGSSOM.exe -s " +pname //pname地圖服務(wù)名稱

      os.system(tempservicename)

      4)更新地圖瓦片。基于更新參數(shù),利用ArcGIS Server Python API中提供的UpdateMapServerCache()函數(shù),實現(xiàn)地圖瓦片的更新操作。

      gp.UpdateMapServerCache(server_name, service_name, data_frame, layers, constraining_extent, scales,update_mode, thread_count, antialiasing)

      5)設(shè)定已更新標(biāo)記。地圖瓦片更新完成后,將更新區(qū)域中的“是否已處理”字段標(biāo)記為“已處理”,避免在此后執(zhí)行自動更新操作時進(jìn)行重復(fù)更新。

      2.4 自動執(zhí)行腳本任務(wù)的制定

      以Window 2008 Server操作系統(tǒng)為例,創(chuàng)建一個任務(wù),在地圖服務(wù)訪問空閑期間,如以夜間1點為條件,觸發(fā)腳本程序,自動執(zhí)行地圖瓦片的更新任務(wù)。

      3 地圖瓦片定時自動更新執(zhí)行條件的說明

      地圖瓦片更新腳本程序,每天會在設(shè)定的時間點自動執(zhí)行。程序通過訪問參數(shù)文件庫,讀取其中的更新區(qū)域多邊形數(shù)據(jù)文件,遍歷所有更新區(qū)域多邊形的更新標(biāo)識符字段,進(jìn)而判斷是否需要繼續(xù)執(zhí)行瓦片更新程序。更新過的區(qū)域,程序會將該字段的值賦為“Y”,未更新的區(qū)域該字段則為空。對更新標(biāo)識符字段為“Y”的區(qū)域,不作瓦片更新操作;對更新標(biāo)識符字段為空的區(qū)域,執(zhí)行更新操作,并于操作完成后,將對應(yīng)的更新標(biāo)識符字段的值賦為“Y”?;谏鲜鲈瓌t,地圖瓦片更新程序每次自動啟動后,只對新增的更新區(qū)域執(zhí)行更新操作,對更新過的歷史區(qū)域不作任何瓦片更新操作。若未發(fā)現(xiàn)需要更新的區(qū)域,程序不作任何操作,自動予以關(guān)閉。

      4 結(jié) 語

      地圖瓦片技術(shù)的出現(xiàn),解決了在帶寬和服務(wù)器性能有限的情況下,客戶端地圖瀏覽效率不高、服務(wù)器負(fù)擔(dān)過重的問題。但是,在進(jìn)行地圖瓦片更新的過程中,一直存在著步驟繁瑣、運算時間長等問題。文中所述的地圖瓦片定時自動更新方法,已在“天地圖·安徽”的數(shù)據(jù)更新過程中應(yīng)用,并顯著簡化了工作步驟,提高了工作效率。但是,對于大區(qū)域的地圖瓦片更新,由于更新周期長,無法在夜間完成,會影響到地圖服務(wù)在白天訪問繁忙期的正常使用,不建議使用文中所述的方法進(jìn)行更新。

      [1]王強.分布式WebGIS地圖緩存策略的應(yīng)用研究[J].軟件導(dǎo)刊,2008,7(5):16-18

      [2]李海亭,費立凡,彭清山,等.預(yù)生成思想在地理信息服務(wù)中的應(yīng)用研究[J].測繪信息與工程,2009,34(1):31-32

      [3]葉海波,崇潔.ArcGIS 地圖緩存制作簡介[M].北京:Esri中國(北京)有限公司共享服務(wù)事業(yè)部,2011

      [4]潘雪婷.基于Python的控件分析模型的實現(xiàn)[D].北京:中國地質(zhì)大學(xué)(北京),2010

      [5]王冉陽.基于Web Service的數(shù)據(jù)產(chǎn)品加工服務(wù)系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:中國地質(zhì)大學(xué)(北京),2009

      [6]董元,李娜,張廣平.應(yīng)用G_tilelayer的谷歌混合地圖顯示[J].地理空間信息, 2011,9(4):72-74

      [7]王磊,林鴻,丘廣新.城市空間數(shù)據(jù)庫動態(tài)更新機制研究與實現(xiàn)[J].地理空間信息, 2009,7(1):30-33

      猜你喜歡
      管理器瓦片客戶端
      應(yīng)急狀態(tài)啟動磁盤管理器
      一種基于主題時空價值的服務(wù)器端瓦片緩存算法
      慣性
      揚子江(2019年1期)2019-03-08 02:52:34
      Windows文件緩沖處理技術(shù)概述
      縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      高集成度2.5A備份電源管理器簡化鋰離子電池備份系統(tǒng)
      快速導(dǎo)出QQ群消息
      電腦迷(2014年2期)2014-04-29 19:21:13
      基于NoSQL數(shù)據(jù)庫的瓦片地圖服務(wù)
      余庆县| 琼中| 桦川县| 郴州市| 清镇市| 调兵山市| 漾濞| 土默特左旗| 贞丰县| 大名县| 都昌县| 岑溪市| 长白| 专栏| 达尔| 沁源县| 长岭县| 清丰县| 南岸区| 瑞丽市| 韩城市| 金平| 安新县| 佛学| 游戏| 鲜城| 青海省| 桑日县| 瑞丽市| 印江| 南木林县| 镇远县| 察隅县| 隆回县| 丰顺县| 高青县| 达拉特旗| 北辰区| 平塘县| 阳谷县| 康平县|