優化大資料量的KML資料集

2021-08-21 02:45:11 字數 3273 閱讀 7796

在google earth

的幫助檔案中,有對優化大資料集處理的簡單說明:

在該幫助裡,對大型資料檔案做了圖塊化向量資料(

regionating vector data)(

僅限專業版

)的處理。

建議用於大型資料檔案;向量資料圖塊化可限制較高海拔位置顯示的定點數量,自動提公升資料的質量。當放大畫面時,將會看到更多的點。

在fme

幫助中,有部分關於

kml中大資料量資料處理的說明,如下部分:

fme readers and writers (formats supported by fme 2014) > google earth kml reader/writer > writer overview and workbench parameters > writer pipelines

該部分中的內容如下:

1)向量(vector (placemark)

) 向量通道處理向量幾何要素(通常是地標)。預設的通道,

fmeregionator.fmi

進行分割槽。

預設regionator

管道要求用

python

。 google earth

很難開啟和顯示包含乙個大資料量

kml資料集的

kml檔案。圖塊化(

regionation

)提供了乙個劃分向量資料為很多分割槽的機制。每個分割槽包含在乙個單獨的

kml檔案中;

region 

和networklink

元素是載入每個向量資料集的指示。圖塊化的基本意思是使用者應該首先表現最重要的要素,當使用者放大到低海拔區,顯示不太重要的要素。分割槽的通道使用相對權重來確定哪些要素應該首先顯示。

下面的格式屬性用於分割槽通道的配置:

kml 格式屬性

說明

kml_region_weight

指定要素相對權重的乙個浮點值

kml_region_group

會被分割槽在一起的要素分組的名稱,預設的所有的要素乙個分割槽

kml_features_per_region

每個分割槽中的要素數目。預設的是16

kml_minimum_lod

每個分割槽的最小的lod,預設的是256

2)相對權重(

relative weights

) 在圖塊化處理中,所有的輸入要素根據它們的權重排序。最高權重的要素首先顯示。明白要素權重只決定相對顯示順序,它不能保證專案在一定的高度上顯示。

要素的權重可以使用

kml_region_weight

格式屬性指定。如果沒有指定權重,下面的試探法會被用來建立每個要素的權重:

feature geometry

weight calculation

point

常量1.0

line

@length()*1000

area (和其他所有的型別)

@area(1000)

3)細節級別(

level of detail

) 每個區域定義為乙個象限。

google earth

通過比較所需的顯示區域的畫素數與特定最小細節級別決定每個分割槽是否需要顯示在

google earth

上。預設的,圖塊化通道需要最小的

lod是

256,這可以通過

kml_minimum_lod

格式屬性重新設定。注意最大的

lod總是設定為

-1是非常重要的,這意味著一旦達到最小

lod,區域一直會開啟。

4)每個象限的要素

每個區域包含一定數目的要素。當區域被啟用時,所有區域內的要素會被現實。預設的,每個區域至少包含

16個要素,不過可以使用

kml_features_per_region

格式屬性修改。

5)區域分組

預設的,所有寫入到寫模組的向量要素會被分為乙個區。通過使用

kml_region_group

格式屬性,要素被指定到各自的區塊。圖塊化通道假設輸入的要素根據它們各自的區組排序。當通道遇到乙個要素的分組名與當前分組名稱不同的時,當前的分組完成,開始新組的圖塊化。

下面的例子是使用

regions (tiling)

和kml network links

進行大資料量的

kml優化,在

google earth

中顯示的案例。

詳情見:

這個例子中將整個資料集分成一片片小的資料集,這樣更新資料的時候只更新部分區域而不是載入所有資料。本案例使用的方法可以使在

google earth

中放大時只更新請求資料的小片區域。本例中利用乙個工作空間建立

kml網路連線(

kml network link

)檔案和切片的

kml資料集。

工作空間的的第一部分使用

citygrid

要素建立切片邊界。對於每個

citygrid

切片,用乙個區域建立乙個

kml network link

,所以當使用者放大到切片範圍,

google earth

從kml

資料檔案中請求只這一區域的資料。並建立了乙個包含整個區域的預覽圖層(

overview

)。 工作空間的第二部分讀取源資料,使用

citygrid

建立切片,任何切片或網格的模式都可以使用。使用的每個

citygrid

把資料切為指定的區域。

整個案例中關鍵是使用

stringconcatenator

轉換器建立

kml network link

,使用kmlregionsetter

轉換器設定顯示區域,最後對每個分割槽輸出時,使用動態資料集輸出的方式,按分割槽明分別輸出不同的

kmz檔案。

生成的kml檔案如下:

其中kml_network_link.kml

是乙個包含了所有預覽和分割槽鏈結的

kml檔案,**如下:

大資料量分頁優化

用limit offset 時並不是先跳過再查詢 而是 先查詢,再跳過 limit 100w,10 先把100w取出來,然後跳過前100w行,所以大資料分頁用limit很慢 select id,name from lx com 5000000,10 先查詢出來5000000 select id,na...

航測大資料量處理 大資料量處理及優化措施

1 首先考慮垂直拆分庫,不同的表拆分到不同的庫中,例如使用者庫 產品庫 支付庫 2 然後考慮水平拆分庫,將乙個表的資料放到多張表中,例如按照使用者 時間 訂單號 3 插入資料的時候不建立索引 4 待資料已經插入完成後,建立索引 5 正確的指定索引字段 6 使用批量插入資料庫的方式代替單條資料的插入 ...

Mysql大資料量分頁優化

假設有乙個千萬量級的表,取1到10條資料 select from table limit 0,10 select from table limit 1000,10 這兩條語句查詢時間應該在毫秒級完成 select from table limit 3000000,10 你可能沒想到,這條語句執行之間...