Angular+arcgisjs之平面地圖測距、測面積、搜尋
本文程式碼基於Angular8和arcgis js 4.16。
程式碼裡會涉及到一個地圖變數mapView,初始化如下:
const map = new Map({
basemap: 'osm',
});
this.mapView = new MapView({
container: this.mapContainer.nativeElement,
center: [113.280637, 23.125178],
zoom: 12,
map,
});
官網提供了許多小元件,很多操作不需要開發者自己實現,比如本文的測距、測面積、搜尋,這些小元件均滿足基本需求。
測距
平面地圖測距官網:DistanceMeasurement2D
const [DistanceMeasurement2D] = await loadModules(['esri/widgets/DistanceMeasurement2D']);
this.distanceWidget = new DistanceMeasurement2D({
view: this.mapView,
});
this.mapView.ui.add(this.distanceWidget, 'top-right');
// 清除測距小元件
// this.mapView.ui.remove(this.distanceWidget);
// this.distanceWidget = null;
測面積
平面地圖測面積官網:AreaMeasurement2D
const [AreaMeasurement2D] = await loadModules(['esri/widgets/AreaMeasurement2D']);
this.areaWidget = new AreaMeasurement2D({
view: this.mapView,
});
this.mapView.ui.add(this.areaWidget, 'top-right');
// 清除測面積小元件
// this.mapView.ui.remove(this.areaWidget);
// this.areaWidget= null;
搜尋
一般圖層資源資料集的每個資料會存在多個屬性,比如面積、名稱等等,那麼使用者輸入關鍵詞進行搜尋時應從多個資料來源屬性中搜尋。
多資料來源搜尋官網:Search
const [Search] = await loadModules(['esri/widgets/Search']);
const searchSources = [];
// 遍歷圖層,為每個圖層設定搜尋資料來源
if (
this.mapView.map.allLayers &&
this.mapView.map.allLayers.items &&
this.mapView.map.allLayers.items.length > 1
) {
// 排除底圖,即this.mapView.map.allLayers.items[0],索引從1開始
for (let index = 1; index < this.mapView.map.allLayers.items.length; index++) {
const fields = [];
if (
this.mapView.map.allLayers.items[index].fields &&
this.mapView.map.allLayers.items[index].fields.length > 0
) {
this.mapView.map.allLayers.items[index].fields.forEach(f => fields.push(f['name']));
}
searchSources.push({
layer: this.mapView.map.allLayers.items[index],
searchFields: fields.slice(0, 6), // 經試驗,searchFields只能設定6個,否則即使關鍵詞存在於資料來源屬性中也會查不出來
extractMatch: false,
outFields: ['*'],
placeholder: '輸入關鍵詞',
});
}
}
this.searchWidget = new Search({
view: this.mapView,
sources: [...searchSources],
});
this.mapView.ui.add(this.searchWidget, 'top-right');
// 清除搜尋小元件
// this.mapView.ui.remove(this.searchWidget);
// this.searchWidget= null;
相關文章
- 百度API實現地圖示點並測距API地圖
- 搜尋功能測試點
- cad面積快捷鍵命令 cad測量不規則圖形面積
- 定積分在幾何上的應用——1. 平面圖形的面積
- ArcGis api配合vue開發入門系列(二)距離以及面積的測量APIVue
- Django單元測試與搜尋引擎Django
- 1688關鍵字搜尋介面測試
- 百度地圖新增懸浮窗搜尋功能地圖
- 國內主流搜尋引擎提交Sitemap(網站地圖)網站地圖
- 測試面試題-積累篇面試題
- CAD面積周長同步測量
- UI自動化測試:App的WebView頁面中,當搜尋欄無搜尋按鈕時處理方法UIAPPWebView
- 計算地圖中兩點之間的距離地圖
- 面試手撕(一):圖搜尋,排布問題面試
- CAD快速測量面積與周長
- 輸入框/搜尋功能/新增、修改功能測試
- JAVA圖搜尋演算法之DFS-BFSJava演算法
- js之搜尋框JS
- elasticsearch之拼音搜尋Elasticsearch
- 783. 二叉搜尋樹節點最小距離
- 如何做出好看的三維平面地圖?地圖
- PJzhang:搜尋引擎高階語法與滲透測試
- 開放式測試搜尋不到應用怎麼辦
- 834. 樹中距離之和-困難-樹、圖、動態規劃、深度優先搜尋動態規劃
- 室內地圖怎麼畫,樓層平面索引圖製作地圖索引
- 直播平臺開發,基礎搜尋方式之拼音搜尋
- Forrester:2021預測之亞太地區REST
- Python之 常用查詢演算法:最小項搜尋、順序搜尋、二分搜尋Python演算法
- BrightLocal:2021年本地搜尋報告
- 在 Visual Studio 中更好地進行搜尋
- Vue+Antd搭配百度地圖實現搜尋定位等功能Vue地圖
- 量子精密測量為暗物質搜尋提供新手段VW
- 手機地圖導航測試用例地圖
- solr搜尋之搜尋精度問題我已經盡力了!!!Solr
- 淘寶拍立淘介面,圖片搜尋介面,圖片識別介面,以圖搜貨介面,按圖搜尋介面程式碼教程
- 圖的遍歷:深度優先搜尋與廣度優先搜尋
- 【matplotlib 實戰】--面積圖
- ThinkwithGoogle:2021年亞太地區搜尋報告Go