一、原理:
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這個不好使,目前不知道怎麼回事。