国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ArcGIS Engine對警車實(shí)時(shí)調(diào)度平臺(tái)的開發(fā)

2017-11-04 14:49:25王帝文
城市地理 2016年5期
關(guān)鍵詞:二次開發(fā)

王帝文

摘要:在地理信息系統(tǒng)發(fā)展飛速發(fā)展的今天,越來越多的行業(yè)開始使用GIS來分析解決問題。近年來恐怖勢力有所抬頭,安全形勢不容樂觀,且犯罪案件的發(fā)生具有隨機(jī)性,傳統(tǒng)的調(diào)度方式已經(jīng)無法滿足警方快速反應(yīng)的需求,為了實(shí)現(xiàn)實(shí)時(shí)調(diào)度功能,本文著重闡述了空間查詢、實(shí)時(shí)定位、路徑分析技術(shù)的實(shí)現(xiàn)方法,研究如何利用ArcEngine二次開發(fā)警務(wù)調(diào)度平臺(tái)。

關(guān)鍵詞:GIS;實(shí)時(shí)調(diào)度;二次開發(fā)

1、引言:為了滿足當(dāng)下快速出警的需求,許多大城市的警務(wù)部門開始使用警車調(diào)度平臺(tái),作為打擊犯罪分子的高科技武器,但目前在運(yùn)行的警務(wù)平臺(tái)大多以底層開發(fā)為主,缺點(diǎn)是開發(fā)周期長,技術(shù)實(shí)施難度大,維護(hù)成本高,使得許多偏遠(yuǎn)地區(qū)的警務(wù)部門,由于資金緊張、技術(shù)缺乏而難以實(shí)現(xiàn)。本文介紹的利用ArcGIS Engine進(jìn)行二次開發(fā),使用C#作為開發(fā)語言,其優(yōu)點(diǎn)是可以快速搭建系統(tǒng)框架,大幅度縮短軟件開發(fā)周期,借助ArcGIS提供的地理數(shù)據(jù)分析接口,封裝了空間查詢、緩沖區(qū)分析、路徑分析等一系列功能,為實(shí)現(xiàn)警車的實(shí)時(shí)調(diào)度而服務(wù)。通過這種方法做出的產(chǎn)品功能完備,價(jià)格低廉,維護(hù)簡單,兼容性好,可擴(kuò)展性強(qiáng),尤其適合中小城市日常的工作需求,較大型警務(wù)平臺(tái)其性價(jià)比更高。

2、總體設(shè)計(jì)

2.1需求調(diào)查。進(jìn)入21世紀(jì),國內(nèi)城市化步伐加快,城市的安全形勢卻不容樂觀,導(dǎo)致出警范圍和出警強(qiáng)度進(jìn)一步加大,但許多偏遠(yuǎn)城市的警務(wù)部門對于警力調(diào)度還停留在初級階段,即利用紙質(zhì)地圖進(jìn)行人工查詢定位,這種方法效率低、誤差大,很容易因?yàn)槿藶榕袛嗍д`而延誤出警時(shí)間,造成交通癱瘓、公民財(cái)產(chǎn)損失等一系列嚴(yán)重后果。因此,本文總結(jié)了警務(wù)部門存在的現(xiàn)實(shí)需求:①在電子地圖上,實(shí)時(shí)更新警車位置。②當(dāng)發(fā)生案情時(shí),能快速對案發(fā)地點(diǎn)進(jìn)行定位。③根據(jù)具體情況,制定出警最優(yōu)路線,輔助指揮者實(shí)時(shí)調(diào)度。

2.2開發(fā)平臺(tái)。警務(wù)實(shí)時(shí)調(diào)度系統(tǒng)選擇成熟的win7操作系統(tǒng),ESRI的ArcGIS Engine9.3為開發(fā)平臺(tái),Visual Studio 2008為開發(fā)環(huán)境,C#為開發(fā)語言。ArcGISEngine是完整的嵌入式GIS組件庫,可在多種編程語言中調(diào)用接口,它的核心是由ArcObjects一組開發(fā)包組成,可將ArcGIS的功能嵌入到其他應(yīng)用軟件中,這樣的程序安裝時(shí)就不需要安裝ArcGIS專業(yè)軟件,極大地減輕了警務(wù)部門的運(yùn)行負(fù)擔(dān),因此適用于警務(wù)實(shí)時(shí)調(diào)度系統(tǒng)的二次開發(fā)。

3程序設(shè)計(jì)及實(shí)現(xiàn)

3.1程序界面設(shè)計(jì)。在實(shí)現(xiàn)系統(tǒng)分析功能之前,首先應(yīng)搭建地圖顯示框架,通常有兩種方法,一種適合于功能要求較高的程序編寫,所有的控件由自己進(jìn)行代碼編寫,一般用于底層開發(fā);另一種就是利用ArcEngine提供的各項(xiàng)控件,快速搭建界面,具體如下:在VS2008中,我們可以新建一個(gè)Windows窗體項(xiàng)目,然后從ArcGISWindowsForms選項(xiàng)卡向其中添加ToolBarControl、TOCControl、MapControl控件,并分別設(shè)置屬性窗口中的Dock為Top,Left,F(xiàn)ill,完成窗口布局,即頂部為工具欄、左側(cè)為圖層列表,主工作區(qū)為地圖控件,如圖1所示。

ToolBarConrol控件提供了許多Commands和Toolsets,實(shí)現(xiàn)對地圖控件的操作,常用的有Open(打開地圖文件)、Zoom in/out(放大縮?。?、Pan(拖動(dòng)地圖)等,我們可以根據(jù)自己的需要添加相應(yīng)的命令和工具。除此之外,ArcEngine提供了一種模板—MapControl Application,其中已經(jīng)嵌入各種開發(fā)所需的基礎(chǔ)控件,便于我們快速進(jìn)行其他功能的開發(fā),不但節(jié)省了時(shí)間,也降低基礎(chǔ)出錯(cuò)率,本文就采用這個(gè)模板作為軟件界面。

3.2添加圖層

在ArcGIS中地圖是由點(diǎn)、線、面三種類型的矢量數(shù)據(jù)組成,這些要素類以Shapfile的格式存儲(chǔ)在地理數(shù)據(jù)庫Geodatabase中,我們可以通過ArcCatalog對地理數(shù)據(jù)進(jìn)行管理,將所用的要素類放在一個(gè)要素?cái)?shù)據(jù)集中,統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn)。為了滿足警車的定位調(diào)度功能,需要Map添加含有地標(biāo)、道路、居民地信息的要素類,具體實(shí)現(xiàn)如下:

(1)為了添加要素類到地圖中去,首先從工具箱中找到MenuStrip(菜單欄)并添加,然后在菜單欄中鍵入一個(gè)“添加圖層”的菜單項(xiàng),如圖2所示。

(2)雙擊進(jìn)入代碼編寫頁,主要用到的接口有IWorkspaceFactory,IFeatureWorkspace,這兩個(gè)接口用于建立一個(gè)工作空間以訪問地理數(shù)據(jù)庫,建立數(shù)據(jù)庫連接后使用IFeatureClass接口實(shí)例化—個(gè)要素類對象,將數(shù)據(jù)庫中的要素類賦給當(dāng)前對象,完成數(shù)據(jù)的傳遞,但為了顯示在地圖上,就需要將要素類添加到圖層中去,通過IFeatureLayer接口,在空圖層中加入已獲得要素類,最終實(shí)現(xiàn)圖層添加功能。

(3)如果需要添加多個(gè)圖層,批量建立對象并修改OpenFeatureClass的參數(shù)即可,此處不做贅述。在完成“圖層添加”后,根據(jù)程序設(shè)計(jì)目的,需要將地圖上的地點(diǎn)名稱進(jìn)行標(biāo)注,由于標(biāo)注是作為圖層屬性存在的,因此可以使用TextElement繪制,其原理是將屬性表的某個(gè)屬性創(chuàng)建TextElement對象,然后調(diào)用IGraphicsContainer接口的AddElement方法進(jìn)行標(biāo)注的添加,程序運(yùn)行效果如圖3所示。

3.3報(bào)警定位。地圖包含信息量大,人工查找精度低,速度慢,報(bào)警定位作為警務(wù)調(diào)度的第一步,如果不能快速準(zhǔn)確地執(zhí)行,將會(huì)引發(fā)嚴(yán)重的案情延誤問題。利用ArcEngine就可以快速組建空間查詢功能,基于已添加的點(diǎn)圖層,使用圖層屬性中的名稱字段進(jìn)行空間屬性查詢,以實(shí)現(xiàn)對案發(fā)地的位置定位,查詢流程如圖4所示。

根據(jù)報(bào)警人提供的地點(diǎn)信息,利用空間屬性查詢并高亮案發(fā)地點(diǎn)。完成空間屬性查詢需用到以下主要接口:(1)IFeatureLayer,獲取需要進(jìn)行查詢的圖層。(2)IFeatumSelection,此接口可以用來選擇指定圖層的要素,他的成員SelectFeatures可以根據(jù)QueryFilter的實(shí)例化對象,選擇具有限定條件的要素并高亮顯示在地圖上。(3)IC!ueryFilter,該接口可以幫助用戶過濾不需要的值,它的WhereClause屬性用于設(shè)定過濾表達(dá)式,限定返回的要素,即Select..Where..語句中的條件語句,該語句可以通過設(shè)置一個(gè)TextBox進(jìn)行傳遞,但需要注意的是,Geodatabase支持sQL語言作為模糊查詢語句,所以該語句在編寫代碼時(shí)要給字段名加上中括號(hào)([字段名]),限定條件加上雙引號(hào),這樣格式的語句才能在數(shù)據(jù)庫中執(zhí)行,考慮到地圖的大數(shù)據(jù)量,特定義一個(gè)縮放函數(shù),將選中的要素進(jìn)行居中顯示,程序運(yùn)行效果如圖5所示。endprint

3.4警車實(shí)時(shí)定位。警車在日常巡邏任務(wù)中,時(shí)刻都有可能接到調(diào)度命令,只有掌握警車的實(shí)時(shí)位置,才能制定出最優(yōu)出警路線,用TextElement在地圖上模擬車輛的行駛軌跡,其路線由一組點(diǎn)(x,y)構(gòu)成,x為經(jīng)度,y為緯度,數(shù)據(jù)的獲取方式是接收車載GPS傳回的經(jīng)緯度坐標(biāo),示意圖如圖6所示。

利用返回的經(jīng)緯度坐標(biāo),可以在地圖的指定位置畫出TextElement,即將警車作為文字圖元在GraphicsContainer中畫出,為了突出顯示警車,可用ICallout接口定義—個(gè)氣泡。繪出警車后,下一步是讓警車“動(dòng)起來”,由于要求數(shù)據(jù)的實(shí)時(shí)性,所以需要向程序中加入一個(gè)Tuner控件,以設(shè)定間隔對經(jīng)緯度數(shù)據(jù)(x,y)進(jìn)行更新,最后加入一個(gè)Buuon控件作為功能開啟按鈕。這些文本圖元將不占用圖層資源,只在GraphicsContainer中繪出,極大地節(jié)省內(nèi)存空間,提高了程序反應(yīng)速度,運(yùn)行效果如圖7所示。

3.5出警路線制定

3.5.1無向網(wǎng)絡(luò)。制定出警路線需要用到最短路徑分析功能,使用它的前提是建立無向網(wǎng)絡(luò),GIS中的網(wǎng)絡(luò),是指線狀要素相互連接所形成的—個(gè)線狀模式,如道路網(wǎng)。將經(jīng)過編輯的點(diǎn)狀和線狀要素單獨(dú)提取出來作為一個(gè)圖層,這就是可以進(jìn)行路徑分析的道路網(wǎng)絡(luò)模型。ArcEngine中無向網(wǎng)絡(luò)的建立需要用到網(wǎng)絡(luò)數(shù)據(jù)集,它可以在ArcCatalog中進(jìn)行實(shí)現(xiàn)。首先創(chuàng)建一個(gè)FeatureDataset,將道路中心線要素導(dǎo)入,新建一個(gè)具有拓?fù)潢P(guān)系的網(wǎng)絡(luò)數(shù)據(jù)集,設(shè)置連通性和轉(zhuǎn)彎規(guī)則,然后創(chuàng)建相應(yīng)的網(wǎng)絡(luò)屬性,如字段名為Meters,類型為double,它表示的是道路長度,又如字段名為OneWay,類型為Text,目的是為了區(qū)分具有不同通行屬性的道路。當(dāng)全部設(shè)置完成后,系統(tǒng)將自動(dòng)生成一個(gè)匯總報(bào)告,確認(rèn)無誤即可倉犍網(wǎng)絡(luò)數(shù)據(jù)集。

3.5.2最短路徑分析。在上文中已經(jīng)解決了報(bào)警定位和警車定位的問題,依靠構(gòu)建的道路網(wǎng)絡(luò)模型,我們使用GIS的最短路徑分析功能,系統(tǒng)會(huì)在兩點(diǎn)間自動(dòng)規(guī)劃出一條最短路徑,其原理是新建一個(gè)空圖層,獲取網(wǎng)絡(luò)數(shù)據(jù)集中的點(diǎn)要素和線要素并添加進(jìn)去,然后確定所要分析的路徑點(diǎn),設(shè)置捕捉容差,進(jìn)行字段匹配,再將路徑點(diǎn)加載到圖層中,通過INAContext接口設(shè)置分析參數(shù),最終在地圖上顯示出最短路徑及結(jié)果信息。由于網(wǎng)絡(luò)分析較復(fù)雜,因此我們新建了一個(gè)窗口以作分析界面,程序運(yùn)行效果如圖8所示。

結(jié)論:本文從GIS的定義、功能入手,介紹了現(xiàn)階段警務(wù)部門的現(xiàn)實(shí)需求,同時(shí)總結(jié)了現(xiàn)有警務(wù)平臺(tái)存在的問題,提出了利用ESRI公司的二次開發(fā)工具ArcEngine結(jié)合Visual C#開發(fā)環(huán)境快速搭建警務(wù)調(diào)度平臺(tái)的方法,并對建立該平臺(tái)的理論基礎(chǔ)及實(shí)現(xiàn)過程進(jìn)行了詳細(xì)的闡述,并展示了程序運(yùn)行效果,這種方法大大降低了開發(fā)難度,降低了開發(fā)成本并縮短了開發(fā)周期,而且建立的平臺(tái)具有較強(qiáng)的空間查詢和分析功能。endprint

猜你喜歡
二次開發(fā)
淺談基于Revit平臺(tái)的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉(zhuǎn)坐標(biāo)系二次開發(fā)
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
Micaps3.2 版本二次開發(fā)入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
ANSYS Workbench二次開發(fā)在汽車穩(wěn)定桿CAE分析中的應(yīng)用
汽車零部件(2014年5期)2014-11-11 12:24:32
基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
吐鲁番市| 秭归县| 郓城县| 南雄市| 宁海县| 若尔盖县| 沂水县| 逊克县| 吉首市| 旺苍县| 定襄县| 内江市| 勐海县| 曲麻莱县| 三明市| 内乡县| 贵州省| 得荣县| 北碚区| 钟祥市| 济源市| 菏泽市| 玉田县| 共和县| 邛崃市| 东光县| 四川省| 如皋市| 甘谷县| 鹤山市| 彰化市| 南岸区| 石河子市| 睢宁县| 施甸县| 吴桥县| 叙永县| 盐亭县| 青田县| 涿鹿县| 图木舒克市|