• 
    

    
    

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

      基于ArcGIS Engine對警車實時調(diào)度平臺的開發(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)的需求,為了實現(xiàn)實時調(diào)度功能,本文著重闡述了空間查詢、實時定位、路徑分析技術(shù)的實現(xiàn)方法,研究如何利用ArcEngine二次開發(fā)警務(wù)調(diào)度平臺。

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

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

      2、總體設(shè)計

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

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

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

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

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

      3.2添加圖層

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

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

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

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

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

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

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

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

      3.5出警路線制定

      3.5.1無向網(wǎng)絡(luò)。制定出警路線需要用到最短路徑分析功能,使用它的前提是建立無向網(wǎng)絡(luò),GIS中的網(wǎng)絡(luò),是指線狀要素相互連接所形成的—個線狀模式,如道路網(wǎng)。將經(jīng)過編輯的點狀和線狀要素單獨提取出來作為一個圖層,這就是可以進(jìn)行路徑分析的道路網(wǎng)絡(luò)模型。ArcEngine中無向網(wǎng)絡(luò)的建立需要用到網(wǎng)絡(luò)數(shù)據(jù)集,它可以在ArcCatalog中進(jìn)行實現(xiàn)。首先創(chuàng)建一個FeatureDataset,將道路中心線要素導(dǎo)入,新建一個具有拓?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)將自動生成一個匯總報告,確認(rèn)無誤即可倉犍網(wǎng)絡(luò)數(shù)據(jù)集。

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

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

      猜你喜歡
      二次開發(fā)
      淺談基于Revit平臺的二次開發(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ā)
      栾城县| 渝北区| 田东县| 怀宁县| 锦州市| 丹寨县| 称多县| 武汉市| 大姚县| 从江县| 临安市| 香港| 沅江市| 卓资县| 黄大仙区| 西藏| 靖宇县| 新野县| 甘南县| 临西县| 扶沟县| 攀枝花市| 富平县| 慈溪市| 丹凤县| 合肥市| 江川县| 门头沟区| 邻水| 乐安县| 卢龙县| 剑河县| 阿拉善左旗| 扶绥县| 襄城县| 莎车县| 阳江市| 繁峙县| 高尔夫| 沐川县| 临朐县|