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
主站蜘蛛池模板: 青青草一区二区免费精品| 国产高清在线观看91精品| 国产成人综合欧美精品久久| 久久久久九九精品影院| 国产亚洲成AⅤ人片在线观看| 国产小视频网站| 亚洲国产精品日韩av专区| av一区二区三区在线观看 | av在线无码浏览| 国产精品永久不卡免费视频| 亚洲无码四虎黄色网站| 亚洲娇小与黑人巨大交| 国产成人麻豆精品| 国产精品原创不卡在线| av无码久久精品| 国产成人三级| 国产视频久久久久| 亚洲无码视频图片| 欧美亚洲国产一区| 啪啪免费视频一区二区| 97青草最新免费精品视频| 国产成人调教在线视频| 片在线无码观看| 超碰91免费人妻| 一本大道香蕉中文日本不卡高清二区| 国产一区二区三区视频| 日韩毛片免费| 日韩欧美视频第一区在线观看| V一区无码内射国产| 亚洲视频在线观看免费视频| 人妻出轨无码中文一区二区| 国模私拍一区二区三区| 伊人网址在线| 婷五月综合| 女人18毛片久久| 成人91在线| 成人午夜天| 亚洲一区精品视频在线| 国产伦精品一区二区三区视频优播| 亚洲天堂777| 欧美性爱精品一区二区三区 | 园内精品自拍视频在线播放| 日韩成人在线一区二区| 人妻熟妇日韩AV在线播放| 99热线精品大全在线观看| 狠狠色丁婷婷综合久久| 国产成人精品一区二区| 国产又粗又猛又爽视频| 综合网久久| 欧美.成人.综合在线| 黄色网址免费在线| 2022国产无码在线| 欧洲亚洲一区| 黑人巨大精品欧美一区二区区| 在线观看免费黄色网址| 日韩免费成人| 色妞www精品视频一级下载| 亚洲黄色成人| 在线综合亚洲欧美网站| 久久精品无码一区二区日韩免费| 久夜色精品国产噜噜| 婷婷六月综合| 亚洲一道AV无码午夜福利| 在线观看精品国产入口| 91在线精品免费免费播放| 国产网站免费观看| 久久久久88色偷偷| 白浆视频在线观看| 欧美一区精品| 国语少妇高潮| 亚洲综合色在线| 一级黄色片网| 国产91视频免费观看| 青青草一区| 国产午夜看片| 国产综合另类小说色区色噜噜 | 性色生活片在线观看| 狠狠ⅴ日韩v欧美v天堂| 亚洲国产精品一区二区第一页免 | 亚洲欧美一区在线| 亚洲欧洲自拍拍偷午夜色无码| 伊人激情综合|