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地圖
- ArcGIS API for Silverlight實現地圖測距功能API地圖
- cad面積快捷鍵命令 cad測量不規則圖形面積
- 定積分在幾何上的應用——1. 平面圖形的面積
- ArcGis api配合vue開發入門系列(二)距離以及面積的測量APIVue
- 百度地圖 搜尋建議功能地圖
- Google地圖:全球各國熱門搜尋Go地圖
- CAD面積周長同步測量
- UI自動化測試:App的WebView頁面中,當搜尋欄無搜尋按鈕時處理方法UIAPPWebView
- Django單元測試與搜尋引擎Django
- 國內主流搜尋引擎提交Sitemap(網站地圖)網站地圖
- 百度地圖新增懸浮窗搜尋功能地圖
- 計算地圖中兩點之間的距離地圖
- 1688關鍵字搜尋介面測試
- 淺談附近地點搜尋
- Skobbler:地圖服務對旅遊搜尋何等重要?地圖
- 第四篇:R語言資料視覺化之折線圖、堆積圖、堆積面積圖R語言視覺化
- JAVA圖搜尋演算法之DFS-BFSJava演算法
- elasticsearch之拼音搜尋Elasticsearch
- js之搜尋框JS
- 如何做出好看的三維平面地圖?地圖
- 尋路之 A* 搜尋演算法演算法
- QTP自動化測試Google地圖QTGo地圖
- 室內地圖怎麼畫,樓層平面索引圖製作地圖索引
- 開放式測試搜尋不到應用怎麼辦
- 微信內測商品搜尋功能,小程式版“淘寶”來了
- Google開始測試電話語音搜尋技術Go
- 834. 樹中距離之和-困難-樹、圖、動態規劃、深度優先搜尋動態規劃
- 轉載:如何穩定地使用 Google 搜尋Go
- 超聲波測距模組使用
- 【matplotlib 實戰】--面積圖
- 直播平臺開發,基礎搜尋方式之拼音搜尋
- 相似圖片搜尋的原理
- Google 按圖搜尋的原理Go
- 手機地圖導航測試用例地圖
- android周邊搜尋 如何得到興趣點到我的距離Android
- 怪咖評測室之騰訊地圖:偏好自駕忽視公交族地圖自駕
- 以圖搜尋——網際網路影象搜尋引擎的“雞肋”?