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

?

基于車聯(lián)網(wǎng)獲取行政區(qū)域編碼的方法研究

2021-01-08 11:48:34孫嬌嬌王天涯
宿州學(xué)院學(xué)報 2020年11期
關(guān)鍵詞:經(jīng)緯度離線多邊形

孫嬌嬌,王天涯,王 飛

1.淮北師范大學(xué)數(shù)學(xué)科學(xué)學(xué)院,安徽淮北,235000;2.宿州學(xué)院機械與電子工程學(xué)院,安徽宿州,234000;3.徐工信息技術(shù)股份有限公司,江蘇徐州,221004

車聯(lián)網(wǎng)的概念最早在2009年提出,源于物聯(lián)網(wǎng),是以行駛中的車輛為信息感知對象,借助新一代信息技術(shù),車與平臺之間的網(wǎng)絡(luò)連接,實現(xiàn)車輛的遠程監(jiān)控和遠程控制,提升車輛的智能服務(wù)水平。目前,車聯(lián)網(wǎng)技術(shù)已被列入國家重點項目,其中GPS終端是平臺和車輛的“紐帶”,它主要通過GPRS無線通信技術(shù),實現(xiàn)平臺與車輛之間的數(shù)據(jù)交互。

Python語言在實現(xiàn)數(shù)據(jù)批量處理方面具有獨特的優(yōu)勢,其內(nèi)部提供了列表數(shù)據(jù)結(jié)構(gòu),具有高級語言集合類數(shù)據(jù)結(jié)構(gòu)的特點,且操作非常簡單,廣泛應(yīng)用于大數(shù)據(jù)挖掘和數(shù)據(jù)分析中。Thrift是一種接口描述語言[1],是Facebook開發(fā)的遠程過程調(diào)用(RPC)框架[2],已經(jīng)被應(yīng)用于大量開源的分布式系統(tǒng)中,特別是在大數(shù)據(jù)集群的處理能力上應(yīng)用較為廣泛,比如查詢、存儲、通訊等。隨著互聯(lián)網(wǎng)技術(shù)和地圖測繪技術(shù)的發(fā)展,大數(shù)據(jù)挖掘與知識發(fā)現(xiàn)成為現(xiàn)代科學(xué)技術(shù)的前沿發(fā)展方向,地理信息系統(tǒng)的發(fā)展正面臨大數(shù)據(jù)時代的發(fā)展機遇和新的挑戰(zhàn)[3-4]。一些地圖應(yīng)用服務(wù)的出現(xiàn),一定程度上滿足了開發(fā)者對地圖業(yè)務(wù)的需求,如高德、百度等公司給開發(fā)者提供了公共平臺,個人或企業(yè)通過注冊認證成為開發(fā)者,可以方便地調(diào)用他們提供的在線API接口獲取服務(wù),很大程度上提高了公眾的地理信息認知能力。然而,這種公眾平臺提供的接口往往會在調(diào)用量和并發(fā)數(shù)量上做限制,一定程度上影響了使用者的開發(fā)效率,并且這種接口的使用要求具備外網(wǎng)網(wǎng)絡(luò)環(huán)境。而實際上,往往有很多工廠、企業(yè)規(guī)定內(nèi)部應(yīng)用服務(wù)是不允許使用外網(wǎng)環(huán)境的,這在很大程度上限制了依賴地圖服務(wù)的業(yè)務(wù)工作開展。本文提供了一種可以部署在本地服務(wù)器或者局域網(wǎng)內(nèi)的離線服務(wù)方法,很大程度上滿足了開發(fā)者的需求。

1 城市邊緣數(shù)據(jù)格式化

車聯(lián)網(wǎng)應(yīng)用中,需要實時地獲取地理位置信息。一般情況下,GPS終端通過2G、3G、LET、4G等無線通信技術(shù)上傳該車輛的定位信息,包含經(jīng)緯度、GPS時間等位置信息。本文設(shè)計的離線方法主要是運用Python技術(shù),結(jié)合地圖服務(wù)提供的API接口,抓取全國各省、市、區(qū)縣的城市地圖邊緣點的坐標信息,對在線地圖提供的數(shù)據(jù)進行篩選、過濾、格式化,最終保存為文本格式。把文件按照省市名稱命名,分成兩種命名格式,一種是“省份”文件,命名格式為“省份名稱_省份區(qū)域編碼”;另外一種為“市”文件,命名格式為“市名稱_市區(qū)域編碼_市所屬省份區(qū)域編碼”。這樣,兩種文件通過命名中的“省份區(qū)域編碼”把省和市進行關(guān)聯(lián),可以方便地確定每個“市”的所屬省份。最終,通過Python抓取并存儲,區(qū)域編碼被分成三個級別,即省、市、區(qū)縣(存儲在市文件內(nèi)部),內(nèi)容及命名格式如表1、表2所示。這種格式化后的數(shù)據(jù),易于管理和分析,通過省、市、縣分層數(shù)據(jù)的不同程度的簡化,形成分層數(shù)據(jù)集合存儲,并將該數(shù)據(jù)和GPS本身上傳的數(shù)據(jù)作為本文研究的對象,這樣就實現(xiàn)了城市邊緣點坐標的離線存儲,這些數(shù)據(jù)將作為本文離線方法的基礎(chǔ)數(shù)據(jù),因此,開發(fā)者在使用的過程中只需調(diào)取本地數(shù)據(jù),無需每次都從公共接口中獲取,解決了開發(fā)者使用公共接口的調(diào)用量限制的問題。

表1 “省份”文件內(nèi)容格式(江蘇省_320000)

表2 “市”文件內(nèi)容格式(南京市_320100_320000)

2 基于Thrift的RPC服務(wù)設(shè)計

Apache Thrift是一種主流的新型RPC框架,在大數(shù)據(jù)傳輸和高并發(fā)的系統(tǒng)中性能表現(xiàn)優(yōu)異。RPC,即遠程過程調(diào)用,是互聯(lián)網(wǎng)時代分布式集群中的核心組件[5]。本文從以下兩點進行闡述。

2.1 數(shù)據(jù)優(yōu)化

理論上,對于城市邊緣點采集,數(shù)據(jù)越密集,數(shù)據(jù)量越大,計算出的結(jié)果精準值就越高,但大量的數(shù)據(jù)計算會影響處理的速度,特別在實時處理要求很高的系統(tǒng)上,是不可容忍的,本文基于Douglas-Peucker算法將適量數(shù)據(jù)簡化。

Douglas-Peucker算法是通過去除微小的彎曲獲得每個幾何特點的一種算法[6]。在數(shù)字化時,要對曲線進行采樣,即在曲線上取有限個點,將其變?yōu)檎劬€,并且能在一定程度上保持原有的形狀。

Douglas-Peucker算法原理步驟如下:

(1)在曲線首尾兩點A,B之間連接一條線段AB,該線段為曲線的弦;

(2)計算起始點和最終點的中間所有特征點的里面最大失徑的特征點Pi,得到曲線上離該線段距離最大的點Pmax,計算其與AB的距離;

(3)比較該距離與預(yù)先給定的閾值的大小,如果小于閾值,則將該線段作為曲線的近似,該段曲線處理完畢。

(4)如果距離大于閾值,則用C將曲線分為兩段AC和BC,并分別對兩段進行(1)~(3)的處理。

(5)當所有曲線都處理完畢時,依次連接各個分割點形成折線,即可以作為曲線的近似,形成新的數(shù)據(jù)集合。

2.2 設(shè)計方案

考慮系統(tǒng)的高并發(fā)、易擴展性,本方法選擇將Thrift框架作為RPC服務(wù)載體[7],將城市邊緣信息在服務(wù)端進行緩存,并設(shè)計合理的存儲結(jié)構(gòu),最終,用戶只要在本地或局域網(wǎng)內(nèi)通過Thrift客戶端,把國內(nèi)任意一個位置的經(jīng)緯度作為輸入?yún)?shù)調(diào)取該服務(wù),便可獲取該位置的行政區(qū)域編碼,具體實現(xiàn)步驟如圖1所示。

圖1 離線地圖服務(wù)示意圖

第一步,根據(jù)第1節(jié)中獲取的數(shù)據(jù)文件分別構(gòu)建“省份”邊緣位置信息集合和“市區(qū)縣”邊緣位置信息集合,并通過文件命名建立兩者之間的關(guān)系,根據(jù)Douglas-Peucker算法對原有數(shù)據(jù)集進行優(yōu)化;

第二步,構(gòu)建Thrift服務(wù)端。當客戶端發(fā)送請求時,根據(jù)輸入的經(jīng)緯度,首先遍歷國內(nèi)所有“省份”,把該省份所有邊緣位置信息集合連接成多邊形區(qū)域,判斷該經(jīng)緯度的點是否包含在該區(qū)域內(nèi)。如果不包含則輸出無效,如果屬于某個“省份”則進一步遍歷該“省份”所屬的“市區(qū)縣”;同樣把該“市區(qū)縣”集合的所有點連接成多邊形區(qū)域,如果不包含則輸出無效,包含則輸出對應(yīng)的區(qū)域編碼信息,返回給客戶端查詢結(jié)果。

第三步,經(jīng)緯度的點是否在一個多邊形區(qū)域內(nèi)可采用“射線法”進行判斷。“射線法”算法步驟原理如下:

(1)從點開始,作一條任意的射線,如果射線與多邊形邊的交點個數(shù)為偶數(shù)則表明點在多邊形外,交點個數(shù)為奇數(shù)時則表明點在多邊形內(nèi)。

(2)如果點在多邊形內(nèi)部時,無論如何畫射線都會有交點,且為奇數(shù)個。

(3)如圖2所示的“點射法”示意圖,可以看出點A、B、D和該多邊形交點個數(shù)為偶數(shù),判斷在多邊形外部;點C、E、F和該多邊形交點個數(shù)為奇數(shù),判斷在多邊形內(nèi)部。

圖2 “射線法”示意圖

3 高可用分布式部署

LVS是Linux Virtual Server的簡稱,也就是Linux虛擬服務(wù)器。LVS主要用于多服務(wù)器的負載均衡,它工作在OSI模型中的網(wǎng)絡(luò)層,可以實現(xiàn)高性能,高可用的服務(wù)器集群技術(shù);其配置非常簡單,且有多種負載均衡的算法,即使在集群的服務(wù)器中某臺服務(wù)器無法正常工作,也不影響整體效果。Keepalived是Linux下一個輕量級別的高可用(High Avalilability,HA)解決方案。所謂高可用,意思是一種冗余和接管,當一臺服務(wù)器宕機時,另外一臺服務(wù)器可以無縫接管該服務(wù)器上的服務(wù)。

本文離線服務(wù)采用LVS+Keepalived部署方案,融合了兩種技術(shù)的特性,從而提高系統(tǒng)的可用性,且有利于系統(tǒng)的變更和擴展[8],具體的部署方案,如圖3所示。

圖3 系統(tǒng)部署架構(gòu)圖

(1)兩臺服務(wù)器master和backup分別部署LVS和Keepalived,并配置一個虛擬IP(VIP)供外部調(diào)用,realserver上部署本文離線服務(wù)。

(2)當大量客戶端向服務(wù)端發(fā)送連接請求時,LVS會通過內(nèi)部算法,合理分配到不同的realserver上,達到負載均衡的效果,兩臺Keepalived服務(wù)器保證系統(tǒng)的高可用。

(3)當客戶端鏈接個數(shù)增加時,只需要簡單的增加realserver的個數(shù),便可分擔(dān)各服務(wù)器上的壓力,這種分布式部署方式易于系統(tǒng)的擴展,且能夠跨語言,跨平臺,具有高可用性和可擴展性。

4 實驗測試

本實驗將車聯(lián)網(wǎng)行業(yè)中實際的應(yīng)用場景作為實驗背景。一種常用的應(yīng)用場景為,車輛信息通過GPS終端采集信息上傳到平臺,平臺會根據(jù)GPS上傳的經(jīng)緯度信息判斷該車輛所在的區(qū)域,當有大量車輛信息上傳到平臺時,平臺還可以統(tǒng)計全國各區(qū)域車輛分布情況。

4.1 實驗環(huán)境

實驗中服務(wù)器IP分配及各服務(wù)器配置如表3所示,搭建分布式離線服務(wù),其中IP:10.80.0.90為虛擬IP,作為本文離線API服務(wù)的入口,在10.80.0.102和10.80.0.103服務(wù)器上部署keepalived高可用組件,把10.80.0.0.104和10.80.0.0.105作為realserver服務(wù)器部署的離線API服務(wù)。

表3 實驗測試環(huán)境說明

4.2 實驗內(nèi)容

4.2.1 有效性測試

在高德地圖上隨機選取100個城市的坐標點,分別調(diào)用高德在線API方法和本文離線地圖方法計算行政區(qū)域編碼,計算結(jié)果如表4所示(列舉部分測試信息)。

表4 兩種計算行政區(qū)域編碼方法對比

實驗結(jié)果:從表4中可以看出,對于各測試樣本點,本文方法計算出的結(jié)果與高德在線API計算的結(jié)果一致。

4.2.2 高可靠性測試

同4.2.1中的實驗方法,對該100個城市的坐標點調(diào)用本文離線地圖方法計算區(qū)域編碼,但此時停止IP為10.80.0.0.104和10.80.0.105中一臺的離線地圖服務(wù),實驗結(jié)果仍能得到表4中的正確行政區(qū)域編碼。

4.2.3 性能測試

隨機選取國內(nèi)某一城市的經(jīng)緯度計算該位置的行政區(qū)域編碼,選取高德地圖和百度地圖提供的服務(wù)接口和本文方法進行對比測試。分別進行以下兩種實驗:

實驗一:實驗中選擇同一個坐標點作為輸入?yún)?shù)輸入經(jīng)緯度(116.121 344,30.444 291),按照調(diào)用100次為計時單位,共做了20次實驗,測試高德地圖API、百度地圖API及本文離線方法API輸出結(jié)果的準確性及各個方法的耗時。

實驗結(jié)果:三種方法的計算結(jié)果:均能計算出該經(jīng)緯度的行政區(qū)域編碼為“340825”(安徽省安慶市太湖縣),三種方法在計算上的時間消耗見圖4。

圖4 三種方法耗時對比圖

實驗二:并發(fā)測試,實驗分別對三種API進行并發(fā)測試。計時單位為1次調(diào)用接口的消耗時間,并發(fā)數(shù)均為100,輸入?yún)?shù)仍選擇實驗一中的坐標值,測試三種方法輸出結(jié)果的準確性及各方法的耗時。

實驗結(jié)果:三種方法均能輸出正確結(jié)果:該經(jīng)緯度坐標所在的行政區(qū)域編碼為“340825”(安徽省安慶市太湖縣),三種方法在計算上的時間消耗如圖5所示,可以看出,本文方法計算耗時最少。

4.3 實驗結(jié)論及分析

從4.2.1可以看出本離線方案的計算準確性及有效性;4.2.2中的結(jié)果表明該方案的高可用性,即使在一臺服務(wù)器出現(xiàn)故障的情況下也不影響系統(tǒng)服務(wù)的正常使用;4.2.3兩組實驗可以看出,相比其他兩種方法,本文方法提供的API接口無論是多次調(diào)用還是并發(fā)調(diào)用,在計算耗時上都表現(xiàn)出較為明顯的優(yōu)勢,這是因為局域網(wǎng)內(nèi)的接口調(diào)用相比外網(wǎng)更有優(yōu)勢,所以本方案更適合在局域網(wǎng)內(nèi)使用。

圖5 三種方法并發(fā)測試耗時對比圖

5 結(jié) 語

本文介紹了目前主流在線地圖服務(wù)及其在使用方面存在的問題,并針對這些問題,提出了一種基于車聯(lián)網(wǎng)的獲取行政區(qū)域編碼的設(shè)計方法,詳細介紹了該方法的設(shè)計思路、實現(xiàn)方法,闡述了該方法在實際使用中能夠跨語言、跨平臺、具有高可用性和可擴展性,并可以無限次調(diào)用,解決了公共接口服務(wù)調(diào)用量和并發(fā)量的局限性問題。最后結(jié)合車聯(lián)網(wǎng)的實際應(yīng)用場景,利用實驗的方法,證明了該方法在局域網(wǎng)內(nèi)使用的優(yōu)越性。

猜你喜歡
經(jīng)緯度離線多邊形
多邊形中的“一個角”問題
異步電機離線參數(shù)辨識方法
防爆電機(2021年4期)2021-07-28 07:42:46
呼吸閥離線檢驗工藝與評定探討
淺談ATC離線基礎(chǔ)數(shù)據(jù)的準備
多邊形的藝術(shù)
解多邊形題的轉(zhuǎn)化思想
多邊形的鑲嵌
離線富集-HPLC法同時測定氨咖黃敏膠囊中5種合成色素
中成藥(2018年2期)2018-05-09 07:20:09
自制中學(xué)實驗操作型經(jīng)緯測量儀
澳洲位移大,需調(diào)經(jīng)緯度
黄冈市| 贵州省| 会宁县| 偏关县| 门头沟区| 昂仁县| 海伦市| 泸水县| 沂水县| 遂宁市| 苗栗县| 灵宝市| 琼海市| 新宁县| 丘北县| 上犹县| 娄底市| 扶风县| 北碚区| 南丹县| 新干县| 武乡县| 太保市| 建瓯市| 客服| 华容县| 育儿| 平罗县| 东乌珠穆沁旗| 吴桥县| 鱼台县| 南宫市| 苍梧县| 井研县| 大竹县| 贵德县| 灌云县| 沅陵县| 泽州县| 察雅县| 策勒县|