如何在FME中更新KML

2021-08-21 02:45:11 字數 3560 閱讀 6452

本文介紹下

kml更新的原理及如何在

fme中實現

kml的更新操作。

首先介紹下

kml檔案是如何實現更新的。

對已用指定**載入的

kml 

資料進行新增、更改或刪除(

change

、create 

和delete

)。指定要對其資料進行修改的「

.kml

」檔案或「

.kmz

」檔案。

始終包含在

networklinkcontrol

中。而且,包含

networklinkcontrol

的檔案必須已由

networklink

載入。下圖說明了事件的順序。

乙個networklink將「

原始」kml 

檔案載入到

google 

地球中,

定義了這個原始

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...