999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ArcGIS API for JavaScript 的路徑規劃方法實現

2019-09-03 03:14:22鐘立明
數字通信世界 2019年8期
關鍵詞:數據庫服務

鐘立明,景 寧,熊 偉

(國防科技大學電子科學學院,長沙 410000)

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

1 ArcGIS API for JavaScript 介紹

1.1 ArcGIS API for JavaScript 概述

ArcGIS API for JavaScript 是美國Esri 公司推出的一套網頁端用戶二次開發接口[2],它是基于REST 服務接口和dojo 框架技 術 實 現 的,包 括Map、Layer、Graphic、Geometry、Point、Polyline、Polygon 等300多個類。

1.2 ArcGIS API for JavaScript 功能

可以快速創建交互式地圖應用;可以調用ArcGIS Server的GP 服務,提供專業的分析結果;可以使用ArcGIS Server 的REST API,提供顯示、查詢、分析等功能;可以同時調用多個ArcGIS Server 的服務,輕松實現Mashup。

1.3 ArcGIS API for JavaScript 工作原理

用戶通過Web 瀏覽器端發出請求(比如點擊、瀏覽操作地圖等行為),Web 瀏覽器端對JavaScript 腳本代碼解釋,通過網絡將用戶請求發送至ArcGIS Server,ArcGIS Server 對發送過來的數據進行分析處理,并按要求在數據庫中作出查詢處理,然后將查詢處理的數據結果返回至ArcGIS Server,ArcGIS Server 通過TCP/IP 協議傳遞給Web 瀏覽器,瀏覽器端將結果展現出來給用戶[3,4]。

工作原理如圖1所示。

圖1 工作原理

2 路徑規劃方法實現過程

總體思想是:通過ArcMAP 建立地理數據庫,創建所需要的網絡數據集,利用ArcGIS Server 發布Map 服務,建立GPModel,利用ArcGIS Server 發布GPModel 服務[5],實現網絡分析功能,最后通過調用ArcGIS API for JavaScript 的有關接口,實現路徑規劃。

實現過程如圖2所示。

圖2 實現過程

2.1 創建數據庫系統

ArcGIS 地理數據庫是存儲在通用文件系統文件夾或多用戶關系數據庫管理系統(DBMS)(如Oracle、Microsoft SQL Server或PostgreSQL)中的各種類型地理數據的集合。

在ArcMap 中創建地理數據庫的步驟如下:

(1)創建與數據庫的文件連接。

(2)在文件連接目錄里,創建文件地理數據庫目錄。

(3)在文件地理數據庫目錄里,導入單個或多個要素類、單個或多個表、柵格數據集。

本文使用ArcMap10.4軟件對長沙市地圖SHP(shapefile)數據建立地理數據庫。

2.2 創建路網數據集

路徑規劃是建立在網絡分析層的基礎上實現的。在ArcMap中,系統提供數據集構建向導,首先在導航數據道路層基礎上創建網絡數據集,其次在網絡數據集中創建網絡分析圖層,最后發布地圖服務。

2.2.1 創建網絡數據集

網絡數據集是由網絡元素組成。

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

交匯點:網絡中必備元素。用于連接邊,便于兩條邊之間的導航。

轉彎:網絡中的可選元素。用于存儲于特定轉彎移動方式有關的信息,如限制轉向。

在ArcMap 中建立網絡數據集的步驟如下:

(1)選擇地理數據庫目錄中shapefile 文件,新建網絡數據集。(2)添加新建網絡數據集名稱和要素。(3)選擇網絡連通性策略。(4)高程建模,默認即可。

最后完成網絡數據集的建立。

新建網絡數據集如圖3所示。

2.2.2 創建網絡分析圖層

網絡分析圖層主要用于存儲網絡分析過程中的輸入和輸出,網絡分析執行的對象始終是網絡數據集。

圖3 路網數據集

在ArcMap 中創建網絡分析圖層的步驟如下:(1)將新建的網絡數據集和要素類添加到地圖。(2)選擇自定義窗口工具條,激活Network Analyst 模塊。(3)新建路徑,使用創建網絡位置工具選擇2個停靠點代表起點和終點。(4)求解運算。

網絡分析圖層如圖4所示。

圖4 網絡分析圖層結果

2.2.3 發布地圖服務

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

地圖服務發布成功,如圖5所示。

圖5 地圖服務發布截圖

2.3 創建GP 模型

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

結合路徑規劃模型建立一個GPModel,如圖6所示。

圖6 GPModel

GPModel 建立后,通過編譯成功運行后,即可發布共享為地理處理服務。

3 ArcGIS API for JavaScript 應用程序的實現

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

3.1 安裝部署應用程序

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

3.2 Map 類的構造

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

部分代碼如下:

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

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

3.3 ArcGISDynamicMapServiceLayer 圖層控制的實現

ArcGISDynamicMapServiceLayer 允許調用ArcGIS Server REST API 公開的動態地圖服務資源[9]。每次用戶請求進入時,動態地圖服務都會在服務器上生成地圖圖像。

調用動態地圖服務主要通過以下兩步實現:

一是通過地圖服務創建ArcGISDynamicMapServiceLayer 對象。

部分代碼如下:

Var dlLayer = new ArcGISDynamicMapServiceLayer(dlLayerPath)});

二是將動態地圖服務的對象添加到地圖容器中。

部分代碼如下:

require(["esri/layers/ArcGISDynamicMapServiceLayer",

"dojo/domReady!"],

Function(ArcGISDynamicMapServiceLayer){Var dlLayerPath =

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

3.4 Draw 繪制工具

繪制主要使用Toolar 里的Draw 工具,實現的步驟如下:(1)創建繪圖對象;(2)激活繪圖工具;(3)繪制幾何圖形;(4)創建圖像;(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 瀏覽器運行效果如圖7所示。

圖7 路徑規劃截圖

4 結束語

本文對基于ArcGIS API for JavaScript 的路徑規劃方法實現進行了研究,結合長沙市道路地圖數據進行了Web 應用上的驗證。由于ArcGIS API for JavaScript 是在dojo 框架之上建立的[10],遵循AMD(異步模塊加載機制)規范,這種規范讓JavaScript 就像其它面向對象語言一樣,通過模塊去管理代碼,可移植性和擴展性強,后續也可以根據用戶的實際需求對ArcGIS 進行二次開發。

猜你喜歡
數據庫服務
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 国产无人区一区二区三区| 日韩成人在线视频| 日本精品影院| 国产一区亚洲一区| 伊人福利视频| 久久精品视频一| 538国产在线| 亚洲高清无在码在线无弹窗| 日本在线国产| 日韩黄色在线| 国产精品第5页| 婷婷亚洲综合五月天在线| 国产亚洲美日韩AV中文字幕无码成人 | 久久久久亚洲精品成人网 | 久久人人妻人人爽人人卡片av| 欧美中文字幕无线码视频| 高清久久精品亚洲日韩Av| 亚洲乱伦视频| 真人免费一级毛片一区二区| 99视频在线免费看| 亚洲人成网址| 亚洲品质国产精品无码| 久久人午夜亚洲精品无码区| 亚洲成aⅴ人片在线影院八| 中文字幕第1页在线播| 国产丝袜无码精品| 一级毛片中文字幕| 国产精品专区第1页| 国产成在线观看免费视频| 丰满少妇αⅴ无码区| 国产一级特黄aa级特黄裸毛片 | 国产成人综合亚洲网址| 国产成人亚洲日韩欧美电影| 美女啪啪无遮挡| 青青草a国产免费观看| 国产精品极品美女自在线网站| 欧美自慰一级看片免费| 欧美97欧美综合色伦图| www中文字幕在线观看| 久久中文无码精品| 亚洲手机在线| 日韩二区三区| 青青草原国产av福利网站| 午夜啪啪福利| 露脸国产精品自产在线播| 久久久久亚洲Av片无码观看| 国内精自线i品一区202| 好吊日免费视频| 欧美 亚洲 日韩 国产| 久久精品亚洲热综合一区二区| 国产欧美日韩精品第二区| 精品国产www| 成年A级毛片| 亚洲成a∧人片在线观看无码| 91伊人国产| 丰满人妻一区二区三区视频| 国产成人精品一区二区| 国产欧美日韩视频一区二区三区| 欧美在线精品怡红院| 国产jizz| 人妻精品全国免费视频| 日韩免费成人| 中文毛片无遮挡播放免费| 久久一本精品久久久ー99| 国产成人高清精品免费软件| 免费三A级毛片视频| swag国产精品| 中文字幕一区二区视频| 欧美高清国产| 久久熟女AV| 99热最新在线| 免费在线成人网| 好吊妞欧美视频免费| 色欲色欲久久综合网| 国产99在线| 91精选国产大片| 九九热视频在线免费观看| 在线免费观看AV| 在线亚洲天堂| 欧美无专区| 夜精品a一区二区三区| 国产成人AV大片大片在线播放 |