環境搭建
- 安裝Web服務器 IIS
控制面板-程序-程序和功能-啟用或關閉Windows功能,勾選以下
- 安裝VisualStudio,選擇包括ASP.NET模塊
- 安裝ArcGIS服務器 ArcGIS Server10
資源及教程鏈接:
https://blog.csdn.net/nominior/article/details/80211963。 - 安裝ArcGIS Desktop
ArcGIS Desktop 中包含ArcGatalog、ArcMap兩個客戶端軟件,用來管理GIS服務。
資源鏈接:
https://malagis.com/arcgis-10-6-desktop-install-download.html
安裝ArcGIS Desktop遇到的問題:
問題1:注意,安裝的Arcgis Desktop必須和Arcgis Server是同一個版本號。
問題2:安裝后license無法啟動
解決:拿360把license和desktop卸了重安。license要重安到原路徑。license360了卸了,再重安好幾次終於正常。保證license可以啟動,再關閉它,安desktop。
第二次是license和desktop都安到默認路徑搞好的。
發布ArcGIS Server服務
我的圖層數據是.shp等ArcScence可打開的數據,而不是ArcMap可打開的.mxd格式,要發布服務,必須轉為.mxd格式。
做法:
第一步,在ArcCatalog中:先連接mysql數據庫,並把數據庫升級到物理數據庫;把.shp數據存到數據庫。
第二步,在ArcMap中:連接相應數據庫;加載數據庫中文件到ArcMap;發布服務。
具體參考以下鏈接
http://www.cnblogs.com/wangmengdx/p/9739466.html
如下圖即發布ArcGIS Server服務成功
我們想要的即發布的服務的REST API,如下圖
使用ArcGIS API for JavaScript,在前端調用REST API,顯示地圖。
在VS中,新建.Net項目,自動使用IIS作為Web服務器。
調用接口,使用服務以顯示圖層代碼如下。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
<title>building Map</title>
<style>
html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
}
</style>
<link rel="stylesheet" href="https://js.arcgis.com/3.12/esri/css/esri.css" />
<script src="https://js.arcgis.com/3.12/"></script>
<script>
var myMap;
require(["esri/map", "esri/layers/ArcGISTiledMapServiceLayer", "dojo/domReady!"], function (Map, ArcGISTiledMapServiceLayer) {
myMap = new Map("viewDiv");
var buildingUrl = "http://localhost:6080/arcgis/rest/services/BuildingServiceTest2/MapServer";
var layer = new esri.layers.ArcGISDynamicMapServiceLayer(buildingUrl);
myMap.addLayer(layer);
});
</script>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>
效果如下
特別注意
1 ArcGIS API for JavaScript的版本號不同可能帶來差別。
2 底圖和疊加圖層坐標范圍差異過大可能造成不現實圖層的問題。此例中,無底層,顯示的圖層為疊加的圖層。
3 在ArcCatalog和arcMap連接地理數據庫的用戶要一樣,否則發布服務選Feature Access會報Error 0090。