基於postgis函數計算矢量切片並通過mapbox和arcgis js 3.x加載

一、原理:

1.首先在前端依賴js類庫算法將當前的地圖範圍(extent)和縮放級別(extent)自動計算出列號(x)、行號(y)、級別(z)。會計算出多個瓦片座標(z,x,y)。

2.將這些瓦片座標當做實參({z}、{x}、{y})依次循環傳入到後臺的服務(後臺對應着三個形參)

3.將瓦片座標轉換爲經緯度,因爲只有這樣才能依靠經緯度(4326)或平面座標(3857)範圍查詢對應數據庫的數據。

4.將查詢出的數據轉換爲mvt格式(實際是一個二進制流格式數據)。

SELECT ST_AsMVT(tile,'lines',4096,'geom') tile  FROM(SELECT fs_name,ST_AsMVTGeom(geom,ST_Transform(ST_MakeEnvelope(%s,%s,%s,%s, 4326),3857),4096, 256, true) AS geom FROM  public.pipesectionmpa_4326_3857 ) AS  tile;

5.依次返回給前端,前端將數據繪製到地圖上。另外,可以根據match對某個字段值進行分值設色。

6.通過arcgis js 3.27加載,有一點需要說明,通過arcgis js加載match這個不好使,目前不知道怎麼回事。

發佈了46 篇原創文章 · 獲贊 21 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章