本文介紹下
kml更新的原理及如何在
fme中實現
kml的更新操作。
首先介紹下
kml檔案是如何實現更新的。
對已用指定**載入的
kml
資料進行新增、更改或刪除(
change
、create
和delete
)。指定要對其資料進行修改的「
.kml
」檔案或「
.kmz
」檔案。
始終包含在
networklinkcontrol
中。而且,包含
networklinkcontrol
的檔案必須已由
networklink
載入。下圖說明了事件的順序。
乙個networklink將「
原始」kml
檔案載入到
地球中,
定義了這個原始
kml的**。以後要更新的元素需要在首次指定時明確定義
id。該
id 必須在給定檔案中是唯一的。
另乙個networklink
載入第二個
kml
檔案,該檔案包含對已載入的
kml
物件的更新(更改、建立和刪除的任何組合操作)。
為了能夠在
google earth
中查詢物件,
update
元素會使用
targethref
元素來標識定義了要修改的物件的原始檔案。而為了標識要修改的物件或新物件的容器,
change
、create
和delete
元素會包含用於引用這些物件
id 的
targetid
屬性。下面介紹下如何用
fme來更新
kml檔案。
1)fme中的更新模式:寫模組支援把要素寫入到父
元素或乙個
元素,這個
本身包含了
要素。所有具有
kml_update_mode
屬性的要素被設計為
「update」
要素,會作為乙個
要素處理。
2)輔助<
networklinkcontrol>
元素:每個
元素可以包含0個或
1個元素和0個或1
個元素。如果乙個
元素和元素都是父元素,那麼
元素可以用於更新乙個檔案的內容而不是他的兄弟
,或者它可以用於更改
中的特定引數,如重新整理時間,鏈結名稱或到期時間等。
3)更新專案的順序:像
google earth
等地球瀏覽器,按次序處理
元素中的每個子元素。確保正確的處理各個更新專案的依賴關係是重要的。例如,確保父資料夾的
「create」
在執行乙個地標的
「create」
之前。寫模組按下列次序對
元素的內容排序:
1、根據更新的模式按下列順序分組:
delete, create, change
2、父節點的執行在子節點之前
3、容器的操作在非容器之前
4、如果上述不適用,根據
kml_id
4)target href
:元素的
子元素指定了檔案的
url,更新應用的
url是乙個完整的
url或相對部分
url。
url指定的是
kml檔案而不是
networklink
服務的url
,雖然檔案必須來自相同的伺服器,也必須是
請求的結果。使用檔案的本地檔名
://是無效的。寫模組支援
targethref
的說明可以通過
target_href
指令在寫模組層次,也可以使用
kml_target_href
格式屬性寫到要素層次。使用
kml_document_name
和kml_target_href
格式屬性的組合允許建立多個
kml檔案,每個檔案包含自己的
和相關的更新要素。
下面舉乙個簡單的例子來說明問題。
1、建立乙個含有兩個元素的
kml檔案,這兩個元素分別為
kml_id
分別為1,2
設定kml_parent= source
google earth
中的開啟該
kml如下:
2、將該工作空間發布的
fme server
,註冊為
data streaming
服務。服務位址為:
3、建立乙個更新的
kml檔案,含三個元素,分別用來更新元素
1,刪除元素
2和建立元素
3,設定
target href
屬性如下:
4、同樣發布的
fme server
,註冊為
5、建立乙個包含兩個
kml鏈結的
kml檔案,內如容下:
在該kml
中可以用、、
、等引數來控制重新整理。6、在
google earth
中開啟該檔案,顯示如下:
可以看到,該檔案有兩個圖層,分別是原圖層
source
和更新圖層
update
,並且source
圖層中元素
1已經進行了更新(位置發生了變化),元素
2已經刪除,新增了元素3。
FME中的常用kml轉換器介紹 一
1 kml 介紹kml keyhole markup language 是一種基於 xml的 ogc標準,隨著 google earth 的廣泛應用,kml給大量的 和桌面使用者提供了豐富的專題空間資訊。kml不同於其它網路地圖格式,它強調顯示樣式和高階功能,例如區域 regions 網路連線 ne...
如何在Ubuntu中安裝安全更新
保護你的ubuntu系統最簡單的方法之一就是更新系統上的軟體。因此,經常應用更新是維護安全系統的乙個重要部分。在這篇文章中,我們將展示如何在ubuntu和linux mint系統中安裝安全更新。在ubuntu上安裝安全更新 如果您的系統安裝了update notifier common軟體包,則ub...
Ubuntu中如何在更新中解決cups卡死問題
我使用的是ubuntu 10.10的系統。在一次系統自動提示的更新中,顯示 正在預備替換cups 1.x.x 時卡死。此時開啟終端,輸入命令 ps ax grep cups ps ax是用bsd語法檢視系統中每乙個程序的命令。grep global search regular expression...