前言
關於本篇功能實現用到的 api 涉及類看不懂的,請參照 esri 官網的 arcgis api 3.x for js:esri 官網 api,里面詳細的介紹 arcgis api 3.x 各個類的介紹,還有就是在線例子:esri 官網在線例子,這個也是學習 arcgis api 3.x 的好素材。
內容概覽
- 地圖屬性查詢
- 地圖空間查詢
- 源代碼 demo 下載
本篇實現地圖查詢功能,包括屬性查詢和空間查詢兩大塊,效果圖如下:
-
屬性查詢效果圖
-
空間查詢效果圖
談核心代碼實現之前,我大概的講一講 arcgis api for js 的地圖查詢方式,一般來說,總共有三種查詢方式:FindTask、IdentifyTask、QueryTask
- FindTask 查詢模式:基於關鍵字來模糊查詢地圖圖層,屬於文本型的,不能基於地圖的設置的空間范圍 Geometry 來查詢,但是可以跨越多個圖層來查詢,比如餐飲圖層、醫療服務圖層等等;
- IdentifyTask 查詢模式:跟 FindTask 反過來,基於地圖的設置的空間范圍 Geometry 來查詢,不能基於文本查詢,同樣可以跨越多個圖層來查詢;
- QueryTask 查詢模式:結合 FindTask 以及 IdentifyTask 一體,可以基於文本或者空間范圍來查詢,但是限定了查詢圖層,不能跨越多個圖層來查詢;
下面依據屬性查詢和空間查詢不同思路來講解一下核心實現模塊,實現之前在 map.js 必須引入相關的調用 api 包
更多的詳情見:GIS之家小專欄
文章尾部提供源代碼下載,對本專欄感興趣的話,可以關注一波