WebGIS是一種將地理信息系統(GIS)技術和Internet技術有機結合的新型技術,具有空間數據採集、存儲、處理、分析與展示等功能,使用戶能夠更加直觀和方便地進行交互。
一、創建地圖
首先,我們需要創建一個地圖。可以使用ArcGIS JavaScript API創建地圖,百度地圖API,或其它框架創建地圖。
下面是一個使用ArcGIS JavaScript API創建地圖的示例代碼:
// 引入模塊 require([ "esri/Map", "esri/views/MapView" ], function(Map, MapView) { // 創建地圖 var map = new Map({ basemap: "streets-navigation-vector" }); // 創建地圖視圖 var view = new MapView({ container: "viewDiv", // 地圖容器 map: map, // 地圖對象 center: [-98.5833, 39.8333], // 中心經緯度 zoom: 5 // 縮放級別 }); });
上面的代碼會創建一個街道底圖,並以[-98.5833, 39.8333]為中心經緯度,縮放級別為5的地圖。可以使用其它底圖和不同的初始化參數。
二、添加圖層
一旦創建了地圖,就可以添加圖層了。可以在地圖上添加各種類型的圖層,例如動態圖層、切片圖層、點圖層、線圖層和面圖層等。
下面是通過ArcGIS REST API添加一個動態地圖服務的示例代碼:
// 引入模塊 require([ "esri/Map", "esri/views/MapView", "esri/layers/MapImageLayer" ], function(Map, MapView, MapImageLayer) { // 創建地圖 var map = new Map({ basemap: "streets-navigation-vector" }); // 創建地圖視圖 var view = new MapView({ container: "viewDiv", map: map, center: [-98.5833, 39.8333], zoom: 5 }); // 添加動態地圖服務圖層 var layer = new MapImageLayer({ url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer" }); map.add(layer); });
上面的代碼會添加一個美國的動態地圖服務圖層,可以使用其它類型的圖層,例如從本地GeoJSON文件、WMS服務等添加圖層。
三、添加查詢功能
除了添加圖層,還可以通過添加查詢功能來更方便地使用地圖。查詢功能通常分為屬性查詢和空間查詢。
下面是一個通過ArcGIS REST API進行屬性查詢的示例代碼:
// 引入模塊 require([ "esri/Map", "esri/views/MapView", "esri/tasks/Locator", "esri/widgets/Search" ], function(Map, MapView, Locator, Search) { // 創建地圖 var map = new Map({ basemap: "streets-navigation-vector" }); // 創建地圖視圖 var view = new MapView({ container: "viewDiv", map: map, center: [-98.5833, 39.8333], zoom: 5 }); // 創建搜索小部件 var searchWidget = new Search({ view: view, sources: [{ locator: new Locator({ url: "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer" }), singleLineFieldName: "SingleLine", name: "地點", placeholder: "輸入地址或地點" }], includeDefaultSources: false }); // 添加搜索小部件 view.ui.add(searchWidget, { position: "top-right" }); // 屬性查詢 searchWidget.on("select-result", function(evt) { view.popup.open({ title: evt.result.name, location: evt.result.feature.geometry, content: evt.result.feature.attributes }); }); });
上面的代碼會創建一個搜索小部件,使用世界地理編碼服務進行地址和地點查詢。當搜索到匹配結果後,彈出窗口顯示搜索結果的屬性信息。
四、添加繪製工具
除了查詢功能,還可以通過添加繪製工具來方便地進行地圖標註和編輯等操作。
下面是一個添加繪製工具的示例代碼:
// 引入模塊 require([ "esri/Map", "esri/views/MapView", "esri/widgets/Sketch" ], function(Map, MapView, Sketch) { // 創建地圖 var map = new Map({ basemap: "streets-navigation-vector" }); // 創建地圖視圖 var view = new MapView({ container: "viewDiv", map: map, center: [-98.5833, 39.8333], zoom: 5 }); // 創建繪製工具 var sketchWidget = new Sketch({ view: view, layer: new GraphicsLayer() }); // 添加繪製工具 view.ui.add(sketchWidget, "top-right"); });
上面的代碼會創建一個基於GraphicsLayer的繪製工具,可以繪製點、線和面等圖形,並可以編輯已經繪製好的圖形。
五、總結
WebGIS開發涉及到很多方面,包括地圖創建、圖層添加、查詢功能和繪製工具等。以上只是一部分示例代碼,更多的API和實現方式,讀者可以參考官方文檔和示例代碼來學習。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/244905.html