• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ArcGIS API for JavaScript 的路徑規(guī)劃方法實(shí)現(xiàn)

      2019-09-03 03:14:22鐘立明
      數(shù)字通信世界 2019年8期
      關(guān)鍵詞:網(wǎng)絡(luò)分析圖層瀏覽器

      鐘立明,景 寧,熊 偉

      (國(guó)防科技大學(xué)電子科學(xué)學(xué)院,長(zhǎng)沙 410000)

      地理信息系統(tǒng)(GIS)的開發(fā)與應(yīng)用是近年來學(xué)術(shù)界研究的熱點(diǎn),特別是Web 端的應(yīng)用也是越來越廣泛,用戶只需要在瀏覽器上便可以迅速地實(shí)現(xiàn)瀏覽地圖、定位位置、路徑規(guī)劃、查找想知道的興趣點(diǎn)等等,動(dòng)態(tài)交互性強(qiáng),極大地方便了我們的工作和生活。另外,使用JavaScript 開發(fā)的Web 端比使用C#、ArcGIS Engine 為代表的C/S 開發(fā)更具優(yōu)勢(shì),JavaScript 可以通過HTML5輕松實(shí)現(xiàn)跨平臺(tái)[1],開發(fā)起來更加系統(tǒng)高效,可移植性好。

      1 ArcGIS API for JavaScript 介紹

      1.1 ArcGIS API for JavaScript 概述

      ArcGIS API for JavaScript 是美國(guó)Esri 公司推出的一套網(wǎng)頁(yè)端用戶二次開發(fā)接口[2],它是基于REST 服務(wù)接口和dojo 框架技 術(shù) 實(shí) 現(xiàn) 的,包 括Map、Layer、Graphic、Geometry、Point、Polyline、Polygon 等300多個(gè)類。

      1.2 ArcGIS API for JavaScript 功能

      可以快速創(chuàng)建交互式地圖應(yīng)用;可以調(diào)用ArcGIS Server的GP 服務(wù),提供專業(yè)的分析結(jié)果;可以使用ArcGIS Server 的REST API,提供顯示、查詢、分析等功能;可以同時(shí)調(diào)用多個(gè)ArcGIS Server 的服務(wù),輕松實(shí)現(xiàn)Mashup。

      1.3 ArcGIS API for JavaScript 工作原理

      用戶通過Web 瀏覽器端發(fā)出請(qǐng)求(比如點(diǎn)擊、瀏覽操作地圖等行為),Web 瀏覽器端對(duì)JavaScript 腳本代碼解釋,通過網(wǎng)絡(luò)將用戶請(qǐng)求發(fā)送至ArcGIS Server,ArcGIS Server 對(duì)發(fā)送過來的數(shù)據(jù)進(jìn)行分析處理,并按要求在數(shù)據(jù)庫(kù)中作出查詢處理,然后將查詢處理的數(shù)據(jù)結(jié)果返回至ArcGIS Server,ArcGIS Server 通過TCP/IP 協(xié)議傳遞給Web 瀏覽器,瀏覽器端將結(jié)果展現(xiàn)出來給用戶[3,4]。

      工作原理如圖1所示。

      圖1 工作原理

      2 路徑規(guī)劃方法實(shí)現(xiàn)過程

      總體思想是:通過ArcMAP 建立地理數(shù)據(jù)庫(kù),創(chuàng)建所需要的網(wǎng)絡(luò)數(shù)據(jù)集,利用ArcGIS Server 發(fā)布Map 服務(wù),建立GPModel,利用ArcGIS Server 發(fā)布GPModel 服務(wù)[5],實(shí)現(xiàn)網(wǎng)絡(luò)分析功能,最后通過調(diào)用ArcGIS API for JavaScript 的有關(guān)接口,實(shí)現(xiàn)路徑規(guī)劃。

      實(shí)現(xiàn)過程如圖2所示。

      圖2 實(shí)現(xiàn)過程

      2.1 創(chuàng)建數(shù)據(jù)庫(kù)系統(tǒng)

      ArcGIS 地理數(shù)據(jù)庫(kù)是存儲(chǔ)在通用文件系統(tǒng)文件夾或多用戶關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)(如Oracle、Microsoft SQL Server或PostgreSQL)中的各種類型地理數(shù)據(jù)的集合。

      在ArcMap 中創(chuàng)建地理數(shù)據(jù)庫(kù)的步驟如下:

      (1)創(chuàng)建與數(shù)據(jù)庫(kù)的文件連接。

      (2)在文件連接目錄里,創(chuàng)建文件地理數(shù)據(jù)庫(kù)目錄。

      (3)在文件地理數(shù)據(jù)庫(kù)目錄里,導(dǎo)入單個(gè)或多個(gè)要素類、單個(gè)或多個(gè)表、柵格數(shù)據(jù)集。

      本文使用ArcMap10.4軟件對(duì)長(zhǎng)沙市地圖SHP(shapefile)數(shù)據(jù)建立地理數(shù)據(jù)庫(kù)。

      2.2 創(chuàng)建路網(wǎng)數(shù)據(jù)集

      路徑規(guī)劃是建立在網(wǎng)絡(luò)分析層的基礎(chǔ)上實(shí)現(xiàn)的。在ArcMap中,系統(tǒng)提供數(shù)據(jù)集構(gòu)建向?qū)?,首先在?dǎo)航數(shù)據(jù)道路層基礎(chǔ)上創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)集,其次在網(wǎng)絡(luò)數(shù)據(jù)集中創(chuàng)建網(wǎng)絡(luò)分析圖層,最后發(fā)布地圖服務(wù)。

      2.2.1 創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)集

      網(wǎng)絡(luò)數(shù)據(jù)集是由網(wǎng)絡(luò)元素組成。

      網(wǎng)絡(luò)元素分為三種類型[6]:邊:網(wǎng)絡(luò)中必備元素。用于連接至其他元素(交匯點(diǎn)),也就是網(wǎng)絡(luò)中的線要素類。

      交匯點(diǎn):網(wǎng)絡(luò)中必備元素。用于連接邊,便于兩條邊之間的導(dǎo)航。

      轉(zhuǎn)彎:網(wǎng)絡(luò)中的可選元素。用于存儲(chǔ)于特定轉(zhuǎn)彎移動(dòng)方式有關(guān)的信息,如限制轉(zhuǎn)向。

      在ArcMap 中建立網(wǎng)絡(luò)數(shù)據(jù)集的步驟如下:

      (1)選擇地理數(shù)據(jù)庫(kù)目錄中shapefile 文件,新建網(wǎng)絡(luò)數(shù)據(jù)集。(2)添加新建網(wǎng)絡(luò)數(shù)據(jù)集名稱和要素。(3)選擇網(wǎng)絡(luò)連通性策略。(4)高程建模,默認(rèn)即可。

      最后完成網(wǎng)絡(luò)數(shù)據(jù)集的建立。

      新建網(wǎng)絡(luò)數(shù)據(jù)集如圖3所示。

      2.2.2 創(chuàng)建網(wǎng)絡(luò)分析圖層

      網(wǎng)絡(luò)分析圖層主要用于存儲(chǔ)網(wǎng)絡(luò)分析過程中的輸入和輸出,網(wǎng)絡(luò)分析執(zhí)行的對(duì)象始終是網(wǎng)絡(luò)數(shù)據(jù)集。

      圖3 路網(wǎng)數(shù)據(jù)集

      在ArcMap 中創(chuàng)建網(wǎng)絡(luò)分析圖層的步驟如下:(1)將新建的網(wǎng)絡(luò)數(shù)據(jù)集和要素類添加到地圖。(2)選擇自定義窗口工具條,激活Network Analyst 模塊。(3)新建路徑,使用創(chuàng)建網(wǎng)絡(luò)位置工具選擇2個(gè)??奎c(diǎn)代表起點(diǎn)和終點(diǎn)。(4)求解運(yùn)算。

      網(wǎng)絡(luò)分析圖層如圖4所示。

      圖4 網(wǎng)絡(luò)分析圖層結(jié)果

      2.2.3 發(fā)布地圖服務(wù)

      地圖服務(wù)是一種利用ArcGIS 將地圖文檔作為服務(wù)發(fā)布到Server 站點(diǎn)上,通過Web 瀏覽器進(jìn)行訪問的方法。使用ArcMap軟件,打開地圖文檔,從主菜單中選擇文件共享為服務(wù),選擇發(fā)布服務(wù)。

      地圖服務(wù)發(fā)布成功,如圖5所示。

      圖5 地圖服務(wù)發(fā)布截圖

      2.3 創(chuàng)建GP 模型

      GP 全名是Geoprocessing,又叫地理處理[7,8]。在WebGIS實(shí)際開發(fā)中,盡管ArcGIS API 提供了很多接口功能,但用戶需求是多樣化的,部分需求可能在API 中沒有實(shí)現(xiàn),而GP 服務(wù)剛好能夠彌補(bǔ)這一點(diǎn)。因此,可以發(fā)布GP 服務(wù),供前端使用。

      結(jié)合路徑規(guī)劃模型建立一個(gè)GPModel,如圖6所示。

      圖6 GPModel

      GPModel 建立后,通過編譯成功運(yùn)行后,即可發(fā)布共享為地理處理服務(wù)。

      3 ArcGIS API for JavaScript 應(yīng)用程序的實(shí)現(xiàn)

      Esri 公司提供在線的ArcGIS API for JavaScript,在Web 應(yīng)用中可直接引用,無需下載安裝;也可以下載API,然后安裝部署到所需的Web 服務(wù)器。

      3.1 安裝部署應(yīng)用程序

      ArcGIS API for JavaScript 應(yīng)用程序部署的步驟是:①下載安裝。②配置IIS。打開打開控制面板-程序-打開或關(guān)閉Windows功能,勾選FTP 服務(wù)和Web 管理工具中的IIS 選項(xiàng)。ISS 功能打開之后,C 盤目錄下會(huì)多一個(gè)inetpub 文件夾,里面的wwwroot文件夾就是服務(wù)根目錄。③修改dojo.js 和init.js 文件的訪問路徑。④瀏覽器訪問init.js 文件測(cè)試部署是否成功。

      3.2 Map 類的構(gòu)造

      Map 類包含儲(chǔ)存、管理和覆蓋視圖共有圖層的屬性和方法。通過在require()函數(shù)內(nèi)部引用的esri/Map 資源來創(chuàng)建一個(gè)新的Map 類。

      部分代碼如下:

      require([ "esri/map","dojo/domReady!"],function (Map){var map = new Map("map",{basemap:"osm",});

      map.centerAndZoom(new esri.geometry.Point()});

      3.3 ArcGISDynamicMapServiceLayer 圖層控制的實(shí)現(xiàn)

      ArcGISDynamicMapServiceLayer 允許調(diào)用ArcGIS Server REST API 公開的動(dòng)態(tài)地圖服務(wù)資源[9]。每次用戶請(qǐng)求進(jìn)入時(shí),動(dòng)態(tài)地圖服務(wù)都會(huì)在服務(wù)器上生成地圖圖像。

      調(diào)用動(dòng)態(tài)地圖服務(wù)主要通過以下兩步實(shí)現(xiàn):

      一是通過地圖服務(wù)創(chuàng)建ArcGISDynamicMapServiceLayer 對(duì)象。

      部分代碼如下:

      Var dlLayer = new ArcGISDynamicMapServiceLayer(dlLayerPath)});

      二是將動(dòng)態(tài)地圖服務(wù)的對(duì)象添加到地圖容器中。

      部分代碼如下:

      require(["esri/layers/ArcGISDynamicMapServiceLayer",

      "dojo/domReady!"],

      Function(ArcGISDynamicMapServiceLayer){Var dlLayerPath =

      http://localhost:6080/arcgis/rest/services/changsha/MapServer};

      3.4 Draw 繪制工具

      繪制主要使用Toolar 里的Draw 工具,實(shí)現(xiàn)的步驟如下:(1)創(chuàng)建繪圖對(duì)象;(2)激活繪圖工具;(3)繪制幾何圖形;(4)創(chuàng)建圖像;(5)加載到地圖。部分代碼如下:

      require([ "esri/toolbars/draw","esri/graphic",

      "esri/symbols/SimpleLineSymbol",

      "esri/geometry/Polyline",

      "dojo/domReady!"],

      function (Draw,Graphic,SimpleLineSymbol,Color,Polyline){

      map.addLayer(dlLayer);

      var draw = new Draw(map);draw.on("draw-end",result);var drawqspoint = document.getElementById("drawstartpoint");

      var drawjspoint = document.getElementById("draw-endpoint");var symbol1 = new esri.symbol.SimpleMarkerSymbol();var symbol2 = new esri.symbol.SimpleMarkerSymbol();}Web 瀏覽器運(yùn)行效果如圖7所示。

      圖7 路徑規(guī)劃截圖

      4 結(jié)束語(yǔ)

      本文對(duì)基于ArcGIS API for JavaScript 的路徑規(guī)劃方法實(shí)現(xiàn)進(jìn)行了研究,結(jié)合長(zhǎng)沙市道路地圖數(shù)據(jù)進(jìn)行了Web 應(yīng)用上的驗(yàn)證。由于ArcGIS API for JavaScript 是在dojo 框架之上建立的[10],遵循AMD(異步模塊加載機(jī)制)規(guī)范,這種規(guī)范讓JavaScript 就像其它面向?qū)ο笳Z(yǔ)言一樣,通過模塊去管理代碼,可移植性和擴(kuò)展性強(qiáng),后續(xù)也可以根據(jù)用戶的實(shí)際需求對(duì)ArcGIS 進(jìn)行二次開發(fā)。

      猜你喜歡
      網(wǎng)絡(luò)分析圖層瀏覽器
      基于ISM模型的EPC項(xiàng)目風(fēng)險(xiǎn)網(wǎng)絡(luò)分析
      反瀏覽器指紋追蹤
      電子制作(2019年10期)2019-06-17 11:45:14
      鐵路有線調(diào)度通信的網(wǎng)絡(luò)分析
      巧用混合圖層 制作抽象動(dòng)感森林
      2016年社交網(wǎng)絡(luò)分析
      環(huán)球?yàn)g覽器
      再見,那些年我們嘲笑過的IE瀏覽器
      圖層法在地理區(qū)域圖讀圖中的應(yīng)用
      大班幼兒同伴交往的社會(huì)網(wǎng)絡(luò)分析
      淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
      河南科技(2014年6期)2014-04-04 08:00:42
      惠来县| 建宁县| 乌审旗| 红河县| 洱源县| 淮北市| 玉门市| 宜良县| 乌拉特后旗| 安西县| 湘潭市| 静宁县| 荣成市| 千阳县| 肃宁县| 武陟县| 张掖市| 双江| 南京市| 鱼台县| 凤冈县| 沿河| 天祝| 开平市| 筠连县| 兴义市| 仁布县| 祁连县| 甘泉县| 堆龙德庆县| 灵台县| 永和县| 南投县| 镇坪县| 琼结县| 奉节县| 于都县| 高邮市| 辛集市| 罗甸县| 明溪县|