1、搭建環境
1.1 ArcGIS Web3D軟件環境
- ArcGIS Pro 2.0(必須)
- ArcGIS for Enterprise 10.5.1 (從10.5開始稱呼為Enterprise)
包括: - ArcGIS Server 10.5.1(必須)
- Portal for ArcGIS 10.5.1(必須)
- ArcGIS Web Adpter (IIS) (必須,理論上一台服務器可安裝20+個)
- ArcGIS Data Store 10.5.1(必須,三維緩存,關系數據庫PostgreSQL)
- ArcGIS for Desktop 10.5.1(一般都安裝)
- WebAppBuilder 2.4 (無代碼即應用)
- ArcGIS Earth 1.0 (Web3D 瀏覽器,Option)
- CityEgnine 2016/3d Max/Sketch Up(Option)
- Oracle11G/12C\PostgreSQL\MongoDB(SDE托管,Option)
1.2 硬件配置
推薦內存16G+(8G卡出翔),4G+獨立顯卡(三維很耗性能)
2、先看幾張成圖
1、Portal 中的三維Scene場景
2、WebAppBuilder中的三維場景
3、環境搭建要點
1、軟件安裝授權許可,安裝沒有順序,不過一般還是先Arcgis Desktop——ArcGIS Pro——ArcGIS Server——ArcGIS WebAdapter——ArcGIS Data Store過程,其他軟件后續安裝。
此處詳細見《實踐 ArcGIS Web 3D》.
2、ArcGIS Pro授權許可要點
現階段不存在破解可能,ESRI重點推薦產品,前期提供60天授權試用時間,后面只有21天試用了,試用申請地址:http://www.esri.com/arcgis/trial
如果有正版授權最好了,試用許可提供5個Named User,200個credit。
3、ArcGIS WebAdapter配置
從ArcGIS Server10.4(貌似10.3.1也有)開始,提供http和https雙重標准,推薦https安全協議。
ArcGIS Server和Portal for ArcGIS默認都使用https,為此WebAdapter需要配置https方可使用,並且一般需要安裝2個WebAdapter來分別匹配Server和Portal。
IIS/Tomcat配置https安全協議,如果有獨立域名可以申請正式SSL協議證書,如果沒有就使用自簽名證書(以IIS為例,如何創建自行搜索)。
Portal for ArcGIS的WebAdapter要創建在默認80端口上,可以配置默認443的HTTPS;ArcGIS Server的WebAdapter可以任意端口配置。
4、ArcGIS Data Store安裝使用
ArcGIS Data Store專用於Portal for ArcGIS使用,高性能,分布式部署備份(主從復制備份),此處參考《ArcGIS Data Store空間數據庫的那點事兒》,詳細描述安裝使用。
注意1:這里安裝不能安裝在有空格的文件夾(比如Program Files)、不能有中文、最好根目錄的文件夾、一般需要10G多的空間;
注意2:關系、切片緩存、時空3個類型的最好分開安裝,而且為了保存主從復制備份機制,一般需要2個數據庫存儲計算機。
注意3:千萬要注意ArcGIS Data Store的通信端口(好幾個),在諸如VMVare\VSphere虛擬環境中,要開放端口(建立出入站規則);
注意4:為了遠程訪問,一般建議使用IP來配置,比如輸入ArcGIS Server站點名稱:https://IP:6443,協議為https。
5、Portal for ArcGIS與ArcGIS Server聯合服務器
1)注冊托管存儲器必須通過門戶WebAdapter的方式來進行,即不能通過7443的內部端口訪問;
2)添加聯合服務器的時候分WebAdapter和內部6443的形式,碰到IP配置不成功的情況下,使用服務器機器名。
6、三維場景發布(Scene Layer)
從CityEngine或其他三維軟件導入的要素,可以先導入GDB或通過“Layer 3D to Feature Class"預先處理下,為多面體要素(MultiPatch)。
此處可參考《深度技術向:ArcGIS如何發布場景圖層》
1)一般登錄ArcGIS Pro后默認激活的是ArcGIS Online,需要切換到自己的Portal門戶。(在無網絡情況下,需要首先切換到offline模式)
2)在Share Web Layer/Web Scene時出現發布失敗時可以,先”Create Scene Layer Package",然后再上傳發布共享使用。
4、前端開發初始實例
WebStorm/VSCode,
//define(function () { var myMap, view; require([ "esri/Basemap", "esri/layers/TileLayer", "esri/Map", "esri/views/MapView", "esri/views/SceneView", "esri/WebScene", "vue", "dojo/domReady!" ], function (Basemap, TileLayer, Map, MapView, SceneView, WebScene, Vue) { //esriConfig.portalUrl = "https://10.0.0.65/myportal"; //創建VUE對象 Vue.component("camara-info",{ props:["camera"], template:"<div>"+ "<h2>視角:</h2>"+ "<p><strong>Heading</strong>:{{camera.heading.toFixed(3)}}</p>"+ "<p><strong>Tilt</strong>:{{camera.tilt.toFixed(3)}}</p>"+ "<p><strong>經度</strong>:{{camera.position.longitude.toFixed(3)}}</p>"+ "<p><strong>緯度</strong>:{{camera.position.latitude.toFixed(3)}}</p>"+ "</div>" }); myMap = new Map({ basemap: "hybrid", ground: "world-elevation" }); // basemap: "osm", // ground: "world-elevation" var scene = new WebScene({ portalItem: { id: "a38bd1cf11f548aaafe0b86560e6a5cd" //Web Scene Layer在Portal中的ID } }); view = new SceneView({ container: "sceneviewDiv", map: scene //scale: 50000000, //center: [117.265, 34.57] }); view.then(function () { var info = new Vue({ el:"#info", data:{camera:view.camera} }); view.ui.add(info.$el,"top-right"); view.watch("camera",function () { info.camera = view.camera; }); }); }); //});
到此,基於ArcGIS 的3D環境搭建和初始實例完成。
【版權所有,轉載請說明出處,尊重原作。】