基于經(jīng)緯度定位行政區(qū)劃的方法\n技術(shù)領(lǐng)域\n[0001] 本發(fā)明涉及導(dǎo)航技術(shù)領(lǐng)域,特別是涉及一種基于經(jīng)緯度定位行政區(qū)劃的方法。\n背景技術(shù)\n[0002] 隨著計(jì)算機(jī)技術(shù)的快速發(fā)展和社會(huì)需求的快速推動(dòng),使得地理信息技術(shù)已經(jīng)廣泛地應(yīng)用在城市智能交通系統(tǒng)、車輛導(dǎo)航系統(tǒng)、個(gè)人位置服務(wù)系統(tǒng)和數(shù)字化武器裝備等等各種嵌入式系統(tǒng)中,其經(jīng)濟(jì)和社會(huì)效益顯著。\n[0003] 隨著移動(dòng)終端軟硬件技術(shù)的不斷進(jìn)步,越來(lái)越多的移動(dòng)設(shè)備裝配了用于定位的GPS(Globe?Positioning?System)芯片,使得基于位置信息的服務(wù)(Location?Based?Service,LBS)得到了迅猛的發(fā)展。根據(jù)用戶的實(shí)時(shí)位置返回或者主動(dòng)傳送對(duì)用戶比較有價(jià)值的數(shù)據(jù),是當(dāng)下十分流行的服務(wù)模式。\n[0004] 目前,越來(lái)越多的服務(wù)商與網(wǎng)絡(luò)運(yùn)營(yíng)商,例如電信運(yùn)營(yíng)商(移動(dòng)或者聯(lián)通等等)合作開(kāi)展了很多基于用戶地理位置上報(bào)的相關(guān)服務(wù),而這種合作一般是在省、市的層面上開(kāi)展的。因此利用用戶上報(bào)的經(jīng)緯度快速定位其所在行政區(qū)劃的需求也越來(lái)越多。\n[0005] 然而提供專利的地理位置定位服務(wù)需要詳細(xì)的專業(yè)測(cè)繪數(shù)據(jù),其一般只能高價(jià)購(gòu)買專業(yè)的測(cè)繪數(shù)據(jù)或者調(diào)用商業(yè)公司(例如Google、Nokia、高德等商業(yè)公司)開(kāi)放的API接口來(lái)完成。\n[0006] 專業(yè)的測(cè)繪數(shù)據(jù)信息比較豐富,其一般包括道路、河流等細(xì)節(jié)信息,但是這些專業(yè)的測(cè)繪數(shù)據(jù)通常十分地昂貴,而定位行政區(qū)劃的定位服務(wù)是一種粗粒度的定位服務(wù),因此采用專業(yè)的測(cè)繪數(shù)據(jù)只是用來(lái)定位行政區(qū)劃,則其成本過(guò)高。而且,由于專業(yè)的測(cè)繪數(shù)據(jù)關(guān)于地理信息的各類細(xì)節(jié)信息十分地豐富,因此在使用這些專業(yè)的測(cè)繪數(shù)據(jù)時(shí)需要進(jìn)行非常復(fù)雜的預(yù)處理,以將有用的信息剝離出來(lái),則其響應(yīng)時(shí)間比較慢,用于定位行政區(qū)劃這種粗粒度的定位服務(wù),則顯得大材小用且得不償失。\n[0007] 而調(diào)用商業(yè)公司開(kāi)放的API接口,其業(yè)務(wù)系統(tǒng)的穩(wěn)定性完全依賴于各個(gè)商業(yè)公司所提供的API接口,且定位服務(wù)商接口數(shù)據(jù)格式變更時(shí)其不一定會(huì)主動(dòng)地通知調(diào)用方,因此其風(fēng)險(xiǎn)是不可控的。此外,各個(gè)商業(yè)公司所開(kāi)放的API接口大部分是需要收費(fèi)的,例如Google公司的API接口只在一定的調(diào)用量之內(nèi)免費(fèi),超出部分需要按次收費(fèi),因此其成本也比較高,特別是對(duì)于調(diào)用次數(shù)較多的客戶而言,其支出巨大。\n發(fā)明內(nèi)容\n[0008] 本發(fā)明的目的在于,克服現(xiàn)有定位行政區(qū)劃技術(shù)所存在的缺陷,而提供一種新的基于經(jīng)緯度定位行政區(qū)劃的方法,其成本較低,風(fēng)險(xiǎn)低,可擴(kuò)展性和靈活性較強(qiáng)。\n[0009] 本發(fā)明的目的及解決其技術(shù)問(wèn)題是采用以下技術(shù)方案來(lái)實(shí)現(xiàn)的。\n[0010] 本發(fā)明提供一種基于經(jīng)緯度定位行政區(qū)劃的方法,其利用獲取的測(cè)繪數(shù)據(jù)而快速地定位所述經(jīng)緯度所在的行政區(qū)劃,在執(zhí)行所述基于經(jīng)緯度定位行政區(qū)劃的方法之前,所述測(cè)繪數(shù)據(jù)進(jìn)行預(yù)處理以使每一個(gè)第一級(jí)行政區(qū)劃分別對(duì)應(yīng)一個(gè)矩形邊界,且每一個(gè)第一級(jí)行政區(qū)劃分別由多個(gè)多邊形所組成。其中所述基于經(jīng)緯度定位行政區(qū)劃的方法包括定位所述經(jīng)緯度所在的第一級(jí)行政區(qū)劃,其包括:步驟S11:逐個(gè)掃描每一個(gè)第一級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界,判斷所述經(jīng)緯度在哪些第一級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界內(nèi),從而挑選出候選的第一級(jí)行政區(qū)劃;步驟S12:逐個(gè)掃描任一個(gè)選中的候選第一級(jí)行政區(qū)劃所包含的多個(gè)多邊形,并判斷所述經(jīng)緯度是否在所述選中的第一級(jí)行政區(qū)劃的任一個(gè)多邊形內(nèi);步驟S13:如上述步驟S12判斷為是,則判定所述選中的候選第一級(jí)行政區(qū)劃為所述經(jīng)緯度所在的第一級(jí)行政區(qū)劃;否則,則返回步驟S12,繼續(xù)掃描其余的候選第一級(jí)行政區(qū)劃。\n[0011] 優(yōu)選地,所述步驟S11包括步驟S111:選中任一個(gè)第一級(jí)行政區(qū)劃,并獲取所述選中的第一級(jí)行政區(qū)劃所對(duì)應(yīng)的所述矩形邊界的任一對(duì)角線的兩個(gè)頂點(diǎn)的坐標(biāo);步驟S112:\n判斷所述經(jīng)緯度的X軸坐標(biāo)是否位于所述兩個(gè)頂點(diǎn)的X軸坐標(biāo)之間,并判定所述經(jīng)緯度的Y軸坐標(biāo)是否位于所述兩個(gè)頂點(diǎn)的Y軸坐標(biāo)之間;步驟S113:如判定為是,則選中的第一級(jí)行政區(qū)劃作為所述候選的第一級(jí)行政區(qū)劃;否則,反之;步驟S114:返回繼續(xù)執(zhí)行上述步驟S111-S113,直至挑選出所有的所述候選的第一級(jí)行政區(qū)劃。\n[0012] 優(yōu)選地,所述步驟S12包括步驟S121:從所述經(jīng)緯度作一條水平向左的射線;步驟S122:判斷所述射線與所述選中的第一級(jí)行政區(qū)劃中的任一選中的多邊形是否有奇數(shù)個(gè)交點(diǎn);步驟S123:如上述步驟S122判斷為是,則判定所述經(jīng)緯度位于所述選中的多邊形內(nèi);否則,反之;步驟S124:更換所述選中的多邊形,并返回繼續(xù)執(zhí)行上述步驟S122-S123,直至掃描完所述選中的第一級(jí)行政區(qū)劃中的所有多邊形。\n[0013] 優(yōu)選地,所述步驟S122包括步驟S1221:判斷所述選中的多邊形中的任一選中的邊是否與所述射線相交;步驟S1222:統(tǒng)計(jì)與所述射線相交的所述選中的多邊形的邊的數(shù)量,如所述數(shù)量為奇數(shù),則所述選中的多邊形與所述射線具有奇數(shù)個(gè)交點(diǎn);否則,反之。\n[0014] 優(yōu)選地,在所述步驟S1221中,所述選中的多邊形的任一選中的邊與所述射線相交的必要充分條件是通過(guò)快速排斥實(shí)驗(yàn)且相互跨立。\n[0015] 優(yōu)選地,所述第一級(jí)行政區(qū)劃為省級(jí)行政區(qū)劃。\n[0016] 優(yōu)選地,所述基于經(jīng)緯度定位行政區(qū)劃的方法在步驟S12與S13之間進(jìn)一步包括步驟S14:判斷所述經(jīng)緯度所在的多邊形是否屬于直轄市的境界,如果判斷為是,則以所述直轄市為所述經(jīng)緯度所在的第一級(jí)行政區(qū)劃。\n[0017] 優(yōu)選地,所述測(cè)繪數(shù)據(jù)在進(jìn)行預(yù)處理時(shí)還進(jìn)一步使每一個(gè)第一級(jí)行政區(qū)劃下屬的每一個(gè)第二級(jí)行政區(qū)劃分別對(duì)應(yīng)于一個(gè)正方形邊界,其中所述基于經(jīng)緯度定位行政區(qū)劃的方法進(jìn)一步包括定位所述經(jīng)緯度所在的第二級(jí)行政區(qū)劃,其包括步驟S21:逐個(gè)掃描所述經(jīng)緯度所在的第一級(jí)行政區(qū)劃下屬的任一選中的第二級(jí)行政區(qū)劃所對(duì)應(yīng)的正方形邊界;步驟S22:判斷所述經(jīng)緯度是否在所述選中的第二級(jí)行政區(qū)劃所對(duì)應(yīng)的正方形邊界內(nèi);步驟S23:\n如上述步驟S22為是,則判定所述選中的第二級(jí)行政區(qū)劃為所述經(jīng)緯度所在的第二級(jí)行政區(qū)劃;否則,更換所述選中的第二級(jí)行政區(qū)劃,并返回繼續(xù)執(zhí)行上述步驟S22。\n[0018] 優(yōu)選地,所述測(cè)繪數(shù)據(jù)在進(jìn)行預(yù)處理時(shí)對(duì)每一個(gè)第二級(jí)行政區(qū)劃的預(yù)處理與對(duì)每一個(gè)第一級(jí)行政區(qū)劃的預(yù)處理相同,其中所述基于經(jīng)緯度定位行政區(qū)劃的方法進(jìn)一步包括定位所述經(jīng)緯度所在的第二級(jí)行政區(qū)劃,且其與定位所述經(jīng)緯度所在的第一級(jí)行政區(qū)劃的方法相同。\n[0019] 優(yōu)選地,所述第二級(jí)行政區(qū)劃為地市級(jí)行政區(qū)劃。\n[0020] 綜上所述,本發(fā)明所述的基于經(jīng)緯度定位行政區(qū)劃的方法,無(wú)需重金購(gòu)買專業(yè)的測(cè)繪數(shù)據(jù),其使用免費(fèi)提供的測(cè)繪數(shù)據(jù)即可快速地定位出所述經(jīng)緯度所在的行政區(qū)劃,從而降低了成本,節(jié)省了大筆的開(kāi)支。另,本發(fā)明所述的基于經(jīng)緯度定位行政區(qū)劃的方法無(wú)需依賴外部接口,數(shù)據(jù)可以完全保存在內(nèi)存中,因此不用承擔(dān)任何接口調(diào)用方式所帶來(lái)的風(fēng)險(xiǎn)。且由于行政區(qū)劃本身的穩(wěn)定性,因此數(shù)據(jù)本身可以長(zhǎng)時(shí)間無(wú)需更新。此外,本發(fā)明的可擴(kuò)展性和靈活性很強(qiáng),例如想要定位粒度更細(xì)的行政區(qū)劃(如市區(qū)、鄉(xiāng)鎮(zhèn)等),用戶可以下載國(guó)家基礎(chǔ)地理信息系統(tǒng)提供的免費(fèi)測(cè)繪數(shù)據(jù),直接用本發(fā)明提出的方法進(jìn)行處理即可,代碼僅需做少量更改且不會(huì)影響之前的功能。\n[0021] 上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉較佳實(shí)施例,并配合附圖,詳細(xì)說(shuō)明如下。\n附圖說(shuō)明\n[0022] 圖1為省級(jí)行政區(qū)劃的映射表的示意圖。\n[0023] 圖2a為一種省級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界之間相互關(guān)系的示意圖。\n[0024] 圖2b為另一種省級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界之間相互關(guān)系的示意圖。\n[0025] 圖3為地市級(jí)行政區(qū)劃所對(duì)應(yīng)的正方形邊界的示意圖。\n[0026] 圖4為省級(jí)與地市級(jí)行政區(qū)劃之間關(guān)系的映射表的示意圖。\n[0027] 圖5為本發(fā)明實(shí)施例所示之基于經(jīng)緯度定位行政區(qū)劃的方法的流程示意圖。\n具體實(shí)施方式\n[0028] 為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實(shí)施例,對(duì)依據(jù)本發(fā)明提出的基于經(jīng)緯度快速定位其行政區(qū)劃的方法其具體實(shí)施方式、方法、步驟、結(jié)構(gòu)、特征及其功效,詳細(xì)說(shuō)明如下。\n[0029] 有關(guān)本發(fā)明的前述及其他技術(shù)內(nèi)容、特點(diǎn)及功效,在以下配合參考圖式的較佳實(shí)施例的詳細(xì)說(shuō)明中將可清楚呈現(xiàn)。通過(guò)具體實(shí)施方式的說(shuō)明,當(dāng)可對(duì)本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及功效得以更加深入且具體的了解,然而所附圖式僅是提供參考與說(shuō)明之用,并非用來(lái)對(duì)本發(fā)明加以限制。\n[0030] 其中,本發(fā)明是利用免費(fèi)的測(cè)繪數(shù)據(jù),例如國(guó)家基礎(chǔ)地理信息系統(tǒng)(http://nfgis.nsdi.gov.cn)所提供的免費(fèi)的測(cè)繪數(shù)據(jù),而實(shí)現(xiàn)快速定位行政區(qū)劃。其中,國(guó)家基礎(chǔ)地理信息系統(tǒng)所提供的免費(fèi)的測(cè)繪數(shù)據(jù)提供了權(quán)威的國(guó)級(jí)境界、省級(jí)境界、地市級(jí)境界、縣級(jí)境界以及其它常用的河流、公路和鐵路等地理信息測(cè)繪數(shù)據(jù),其可以供用戶免費(fèi)下載使用。本發(fā)明所揭示的基于經(jīng)緯度快速定位行政區(qū)劃的方法主要是采用上述免費(fèi)的測(cè)繪數(shù)據(jù)中的省級(jí)、地市級(jí)和縣級(jí)境界作為基礎(chǔ)數(shù)據(jù),從而利用經(jīng)緯度而定位到相應(yīng)的行政區(qū)劃。雖然,本發(fā)明實(shí)施例是以國(guó)家基礎(chǔ)地理信息系統(tǒng)所提供的免費(fèi)的測(cè)繪數(shù)據(jù)來(lái)實(shí)現(xiàn)應(yīng)用,但是,本領(lǐng)域技術(shù)人員可以理解的是,本發(fā)明也可以利用其它免費(fèi)的測(cè)繪數(shù)據(jù)來(lái)實(shí)現(xiàn)。\n[0031] 在獲得免費(fèi)的測(cè)繪數(shù)據(jù)后,首先會(huì)對(duì)獲得的測(cè)繪數(shù)據(jù)進(jìn)行預(yù)處理,以方便后續(xù)需要執(zhí)行的基于經(jīng)緯度定位行政區(qū)劃的方法。在對(duì)測(cè)繪數(shù)據(jù)進(jìn)行預(yù)處理時(shí),受限于免費(fèi)獲得的測(cè)繪數(shù)據(jù)的精確程度的影響,因此對(duì)各個(gè)級(jí)別的行政區(qū)劃的測(cè)繪數(shù)據(jù)的預(yù)處理可以相應(yīng)進(jìn)行調(diào)整。以下以一種精確程度較低的測(cè)繪數(shù)據(jù)為例簡(jiǎn)要地介紹相關(guān)的測(cè)繪數(shù)據(jù)預(yù)處理過(guò)程。\n[0032] 如果測(cè)繪數(shù)據(jù)的精確程度只到地市級(jí)境界,也就是說(shuō),獲得的測(cè)繪數(shù)據(jù)的最細(xì)粒度的行政區(qū)劃只到地市級(jí)境界,則在本發(fā)明中,只需要對(duì)省級(jí)和地市級(jí)境界的測(cè)繪數(shù)據(jù)進(jìn)行預(yù)處理即可,即省級(jí)行政區(qū)劃作為第一級(jí)的行政區(qū)劃,而地市級(jí)行政區(qū)劃作為第二級(jí)的行政區(qū)劃,在此對(duì)測(cè)繪數(shù)據(jù)的預(yù)處理包括:\n[0033] (1)對(duì)省級(jí)行政區(qū)劃的測(cè)繪數(shù)據(jù)的預(yù)處理:\n[0034] 從地圖上直觀來(lái)看,每一個(gè)省都是可以由多個(gè)多邊形所組成的,而每個(gè)多邊形的各個(gè)頂點(diǎn)所在的經(jīng)緯度包含在上述國(guó)家基礎(chǔ)地理信息系統(tǒng)所提供的測(cè)繪數(shù)據(jù)中,如果利用這些數(shù)據(jù)來(lái)進(jìn)行定位,則需要將每個(gè)多邊形抽象成數(shù)據(jù)結(jié)構(gòu)并進(jìn)行保存。其中,絕大部分的省級(jí)行政區(qū)劃只是由少數(shù)幾個(gè)多邊形所組成,而極少數(shù)的省級(jí)行政區(qū)劃由于其地理邊界復(fù)雜,由較多的多邊形所組成。一般組成省級(jí)行政區(qū)劃的多邊形的數(shù)量不會(huì)超過(guò)200個(gè)。\n[0035] 圖1為省級(jí)行政區(qū)劃的映射表的示意圖。如圖1所示,欄位-行政區(qū)劃代碼下的key值代表著省級(jí)行政區(qū)劃的代碼,例如黑龍江省的代碼為230000;而欄位-多邊形下的value值代表著組成此省級(jí)行政區(qū)劃的各個(gè)多邊形的相關(guān)數(shù)據(jù)。\n[0036] 此外,為了方便后續(xù)的處理,在本發(fā)明中,還在對(duì)省級(jí)行政區(qū)劃的測(cè)繪數(shù)據(jù)進(jìn)行預(yù)處理時(shí),還進(jìn)一步將每一個(gè)省級(jí)行政區(qū)劃分別對(duì)應(yīng)于一個(gè)矩形邊界,并將其添加至圖1的映射表中的欄位-矩形邊界處。\n[0037] 需要注意的是,省級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界相互之間可能會(huì)有部分的重疊,例如,如圖2a所示,黑龍江省所對(duì)應(yīng)的矩形邊界和吉林省所對(duì)應(yīng)的矩形邊界具有部分的重疊,比如黑龍江省下屬的哈爾濱市的市中心坐標(biāo)就既在黑龍江省所對(duì)應(yīng)的矩形邊界內(nèi),也在吉林省所在的矩形邊界內(nèi)。\n[0038] 另,省級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界相互之間也可能會(huì)出現(xiàn)包含關(guān)系,當(dāng)然,此種情況一般只會(huì)出現(xiàn)在直轄市和其附近的省級(jí)行政區(qū)劃之間。例如,如圖2b所示,北京市所對(duì)應(yīng)的矩形邊界就在河北省所對(duì)應(yīng)的矩形邊界內(nèi)。\n[0039] 此外,對(duì)于具有較多的多邊形的省級(jí)行政區(qū)劃,其主要區(qū)域所對(duì)應(yīng)的多邊形面積較大,而其余的多邊形面積較小,而用戶一般都集中在面積較大的多邊形里面,因此為了方便后續(xù)的處理,可以在建立如圖1所示的省級(jí)行政區(qū)劃的映射表時(shí),將組成省級(jí)行政區(qū)劃的這些多邊形按照其矩形面積從大到小的順序進(jìn)行排列。\n[0040] (2)對(duì)地市級(jí)行政區(qū)劃的測(cè)繪數(shù)據(jù)的預(yù)處理\n[0041] 眾所周知,每一個(gè)省級(jí)行政區(qū)劃下都包含若干個(gè)地市級(jí)行政區(qū)劃,而每一個(gè)地市級(jí)行政區(qū)劃的面積相對(duì)于省級(jí)行政區(qū)劃而言是非常下的。因此,受限于免費(fèi)獲得的測(cè)繪數(shù)據(jù)的精確程度的影響,在本發(fā)明中,如圖3所示,可以將每一個(gè)地市級(jí)行政區(qū)劃分別對(duì)應(yīng)于一個(gè)正方形邊界。根據(jù)相關(guān)數(shù)據(jù)分析,絕大多數(shù)的地市級(jí)行政區(qū)劃的面積都在10000km2以下,因此為了方便進(jìn)行分析,在本發(fā)明中,可以近視地認(rèn)為每一個(gè)地市級(jí)行政區(qū)劃所對(duì)應(yīng)的正方形邊界的邊長(zhǎng)都是100km。\n[0042] 然后,可以將每一個(gè)地市級(jí)行政區(qū)劃的數(shù)據(jù)保存在一個(gè)類似于圖1所示的地市級(jí)行政區(qū)劃的映射表中。其中,欄位-地市級(jí)行政區(qū)劃代碼下的key值代表著地市區(qū)劃代碼,例如哈爾濱市的代碼為230100,而欄位-正方形下的value值代表著其對(duì)應(yīng)的正方形邊界的相關(guān)數(shù)據(jù)。\n[0043] (3)確定省級(jí)與地市級(jí)行政區(qū)劃之間的關(guān)系\n[0044] 在此,可以建立一個(gè)省級(jí)與地市級(jí)行政區(qū)劃之間關(guān)系的映射表,其如圖4所示。在圖4中,欄位-省級(jí)行政區(qū)劃代碼下的key值代表著省級(jí)行政區(qū)劃的代碼;而欄位-地市級(jí)行政區(qū)劃代碼下的key值分別代表著相應(yīng)的省級(jí)行政區(qū)劃下屬的各個(gè)地市級(jí)行政區(qū)劃的代碼。\n[0045] 在本發(fā)明的上述說(shuō)明中,只是以測(cè)繪數(shù)據(jù)的精確程度只到地市級(jí)境界為例來(lái)進(jìn)行說(shuō)明,但是,本領(lǐng)域技術(shù)人員可以理解的是,如果獲得的測(cè)繪數(shù)據(jù)的最細(xì)粒度的行政區(qū)劃到縣級(jí)境界,則對(duì)地市級(jí)行政區(qū)劃的測(cè)繪數(shù)據(jù)的預(yù)處理也可以按照上述對(duì)省級(jí)行政區(qū)劃的測(cè)繪數(shù)據(jù)的處理方式來(lái)進(jìn)行預(yù)處理,而對(duì)縣級(jí)行政區(qū)劃的測(cè)繪數(shù)據(jù)按照上述對(duì)地市級(jí)行政區(qū)劃的測(cè)繪數(shù)據(jù)的處理方式來(lái)進(jìn)行預(yù)處理。\n[0046] 在對(duì)獲得的免費(fèi)測(cè)繪數(shù)據(jù)進(jìn)行預(yù)處理后,然后可利用獲得的測(cè)繪數(shù)據(jù)而執(zhí)行本發(fā)明所述的基于經(jīng)緯度定位行政區(qū)劃的方法。具體地,圖5為本發(fā)明的基于經(jīng)緯度定位行政區(qū)劃的方法的流程示意圖。在本發(fā)明實(shí)施例中以獲得的免費(fèi)測(cè)繪數(shù)據(jù)的精確程度只到地市級(jí)境界為例來(lái)介紹本發(fā)明,以對(duì)應(yīng)上述對(duì)測(cè)繪數(shù)據(jù)的預(yù)處理方式,即以第一級(jí)行政區(qū)劃為省級(jí)行政區(qū)劃,第二級(jí)行政區(qū)劃為地市級(jí)行政區(qū)劃為例來(lái)介紹本發(fā)明。如圖5所示,本發(fā)明的基于經(jīng)緯度定位行政區(qū)劃的方法包括:\n[0047] 步驟S1:定位所述經(jīng)緯度所在的省級(jí)行政區(qū)劃。\n[0048] 眾所周知,在地圖上,各個(gè)經(jīng)緯度分別對(duì)應(yīng)X-Y坐標(biāo)系中的一個(gè)坐標(biāo),如需要進(jìn)行定位的經(jīng)緯度的坐標(biāo)為(P,Q),其中P對(duì)應(yīng)經(jīng)度,而Q對(duì)應(yīng)于緯度。\n[0049] 其中,步驟S1包括:\n[0050] 步驟S11:逐個(gè)掃描每一個(gè)省級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界,判斷需要進(jìn)行定位的經(jīng)緯度(P,Q)在哪些省級(jí)行政區(qū)劃所在的矩形邊界內(nèi),以挑選出候選的省級(jí)行政區(qū)劃。\n[0051] 在執(zhí)行步驟S11時(shí),可選中任一省級(jí)行政區(qū)劃,并獲取選中的省級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界的任一對(duì)角線的兩個(gè)頂點(diǎn)的坐標(biāo),例如坐標(biāo)(Mx,My)和(Nx,Ny)。\n[0052] 然后,判斷所述經(jīng)緯度(P,Q)的X軸坐標(biāo)P是否位于所述兩個(gè)頂點(diǎn)的X軸坐標(biāo)Mx與Nx之間,并判定所述經(jīng)緯度(P,Q)的Y軸坐標(biāo)Q是否位于所述兩個(gè)頂點(diǎn)的Y軸坐標(biāo)My與Ny之間;\n[0053] 如判定為是,則選中的省級(jí)行政區(qū)劃作為候選的省級(jí)行政區(qū)劃;否則,則反之,然后返回繼續(xù)執(zhí)行上述步驟,直至挑選出所有的所述候選的省級(jí)行政區(qū)劃。\n[0054] 也就是說(shuō),本發(fā)明在執(zhí)行步驟S11時(shí)只需要判斷是否滿足條件Mx≤P≤Nx且My≤Q≤N就可以判斷出任一選中的省級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界是否包含所述需要進(jìn)行定位的經(jīng)緯度(P,Q),從而挑選出所有的候選省級(jí)行政區(qū)劃。\n[0055] 一般來(lái)說(shuō),需要進(jìn)行定位的經(jīng)緯度(P,Q)最多只會(huì)落在2-3個(gè)省級(jí)行政區(qū)劃所對(duì)應(yīng)的矩形邊界內(nèi),因此,利用上述步驟S11所挑選出來(lái)的候選的省級(jí)行政區(qū)劃的數(shù)量不會(huì)很多。\n[0056] 步驟S12:逐個(gè)掃描任一個(gè)選中的候選省級(jí)行政區(qū)劃所包含的多個(gè)多邊形,并判斷需要進(jìn)行定位的經(jīng)緯度(P,Q)是否在選中的省級(jí)行政區(qū)劃的任一個(gè)多邊形內(nèi)。\n[0057] 具體地,在執(zhí)行步驟S12時(shí),可首先從所述經(jīng)緯度作一條水平向左的射線,其與Y軸相交于頂點(diǎn)(0,Q),因此所述射線可由兩個(gè)頂點(diǎn)(0,Q)和(P,Q)所確定。\n[0058] 然后,判斷所述射線與選中的省級(jí)行政區(qū)劃中的任一個(gè)選中的多邊形是否有奇數(shù)個(gè)交點(diǎn)。具體地,可判斷所述選中的多邊形中的任一個(gè)選中的邊是否與所述射線相交,然后統(tǒng)計(jì)與所述射線相交的所述選中的多邊形的邊的數(shù)量,如所述數(shù)量為奇數(shù),則所述選中的多邊形與所述射線具有奇數(shù)個(gè)交點(diǎn);否則,反之。\n[0059] 其中,本領(lǐng)域技術(shù)人員可以理解的是,所述射線就是由兩個(gè)頂點(diǎn)(0,Q)和(P,Q)所確定的線段。而選中的多邊形的任一個(gè)選中的邊可以由其兩個(gè)頂點(diǎn)(Ax,Ay)和(Bx,By)而確定,即任一個(gè)選中的邊是由兩個(gè)頂點(diǎn)(Ax,Ay)和(Bx,By)所確定的線段。因此可通過(guò)判斷兩個(gè)頂點(diǎn)(Ax,Ay)和(Bx,By)所確定的線段與由兩個(gè)頂點(diǎn)(0,Q)和(P,Q)所確定的線段是否相交,來(lái)判斷任一個(gè)選中的邊是否與所述射線相交。\n[0060] 兩個(gè)頂點(diǎn)(Ax,Ay)和(Bx,By)所確定的線段與由兩個(gè)頂點(diǎn)(0,Q)和(P,Q)所確定的線段相交的必要充分條件是通過(guò)快速排斥實(shí)驗(yàn)且相互跨立。\n[0061] 其中,快速排斥實(shí)驗(yàn)是指判斷以頂點(diǎn)(Ax,Ay)和(Bx,By)所確定的線段作為對(duì)角線的矩形區(qū)域和由頂點(diǎn)(0,Q)和(P,Q)所確定的線段作為對(duì)角線的矩形區(qū)域是否相交,其可以用上述兩條線段中的任一條線段的任一頂點(diǎn)是否在另一條線段作為對(duì)角線的矩形區(qū)域來(lái)進(jìn)行快速判斷,如果在,則通過(guò)快速排斥實(shí)驗(yàn),否則,不通過(guò)快速排斥實(shí)驗(yàn)。\n[0062] 相互跨立是判斷上述兩條線段的任一條線段的兩個(gè)頂點(diǎn)是否在另一條線段的兩側(cè)。假設(shè)P1=(Ax,Ay),P2=(Bx,By),Q1=(0,Q),Q2=(P,Q),則如果滿足下述公式:\n[0063] [(P1-Q1)*(Q2-Q1)]*[(P2-Q1)*(Q2-Q1)]≤0且\n[0064] [(Q1-P1)*(P2-P1)]*[(Q2-P1)*(P2-P1)]≤0\n[0065] 則可以判定上述兩條線段是相互跨立的,否則,則判定上述兩條線段是不相互跨立的。\n[0066] 然后,當(dāng)判斷出所述射線與選中的省級(jí)行政區(qū)劃中的任一選中的多邊形具有奇數(shù)個(gè)交點(diǎn)時(shí),則可以判定所述經(jīng)緯度(P,Q)位于選中的多邊形內(nèi);否則,反之,并再更換所述選中的多邊形,并返回繼續(xù)執(zhí)行上述步驟,直至掃描完選中的省級(jí)行政區(qū)劃中的所有多邊形。\n[0067] 每一個(gè)多邊形的邊數(shù)可能會(huì)比較多,為了加速掃描的速度,可以將多邊形的各個(gè)邊按照緯度進(jìn)行排序,由于國(guó)家基礎(chǔ)地理信息系統(tǒng)所提供的數(shù)據(jù)中各個(gè)多邊形的所有邊的最大長(zhǎng)度不會(huì)超過(guò)某一個(gè)預(yù)定的長(zhǎng)度LEN,因此在掃描時(shí),可只掃描滿足下述公式的邊:\n[0068] 0≤Ay-Q≤LEN或者\(yùn)n[0069] 0≤By-Q≤LEN\n[0070] 這樣的邊一般比較少,只有幾個(gè),而且由于多邊形各個(gè)邊已經(jīng)按照緯度進(jìn)行了排序,因此查找起來(lái)非???,從而很快地判定所述射線是否與選中的多邊形是否有奇數(shù)個(gè)交點(diǎn)。\n[0071] 步驟S13:如上述步驟S12判斷為是,則判定選中的候選省級(jí)行政區(qū)劃為所述經(jīng)緯度(P,Q)所在的省級(jí)行政區(qū)劃;否則,則返回步驟S12,繼續(xù)掃描其余的候選省級(jí)行政區(qū)劃。\n[0072] 由于直轄市一般也歸屬于省級(jí)行政區(qū)劃,因此,在本發(fā)明的基于經(jīng)緯度快速定位行政區(qū)劃的方法,在上述步驟S12與S13之間,可還進(jìn)一步包括:\n[0073] 步驟S14:判斷所述經(jīng)緯度所在的多邊形是否屬于直轄市的境界,如果判斷為是,則以所述直轄市為所述經(jīng)緯度所在的省級(jí)行政區(qū)劃。\n[0074] 然后,本發(fā)明的基于經(jīng)緯度定位行政區(qū)劃的方法還進(jìn)一步包括:\n[0075] 步驟S2:定位所述經(jīng)緯度所在的地市級(jí)行政區(qū)劃。\n[0076] 具體地,步驟S2包括:\n[0077] 步驟S21:逐個(gè)掃描所述經(jīng)緯度所在的省級(jí)行政區(qū)劃下屬的任一選中的地市級(jí)級(jí)行政區(qū)劃所對(duì)應(yīng)的正方形邊界;\n[0078] 步驟S22:判斷所述經(jīng)緯度是否在選中的地市級(jí)行政區(qū)劃所對(duì)應(yīng)的正方形邊界內(nèi);\n[0079] 步驟S23:如判斷為是,則判定選中的地市級(jí)行政區(qū)劃為所述經(jīng)緯度所在的地市級(jí)行政區(qū)劃;否則,更換選中的地市級(jí)行政區(qū)劃,并返回繼續(xù)執(zhí)行上述步驟S22。\n[0080] 需要注意的是,本發(fā)明上述定位經(jīng)緯度所在地市級(jí)行政區(qū)劃的方法是由于獲得的免費(fèi)測(cè)繪數(shù)據(jù)的精確程度只到地市級(jí)境界,但是,本領(lǐng)域技術(shù)人員可以理解的是,如果獲得的免費(fèi)測(cè)繪數(shù)據(jù)比較精確,例如其精確程度可以到縣級(jí)境界,則定位所述經(jīng)緯度所在地市級(jí)行政區(qū)劃的方式也可以使用按照上述定位所述經(jīng)緯度所在省級(jí)行政區(qū)劃的方式來(lái)進(jìn)行,且本發(fā)明也可以進(jìn)一步定位所述經(jīng)緯度所在的縣級(jí)行政區(qū)劃,其定位方式如上述對(duì)地市級(jí)行政區(qū)劃的定位方式相同,從而自上而下逐級(jí)定位到所需要的行政區(qū)劃。\n[0081] 綜上所述,本發(fā)明所述的基于經(jīng)緯度定位行政區(qū)劃的方法,無(wú)需重金購(gòu)買專業(yè)的測(cè)繪數(shù)據(jù),其使用免費(fèi)提供的測(cè)繪數(shù)據(jù)即可快速地定位出所述經(jīng)緯度所在的行政區(qū)劃,從而降低了成本,節(jié)省了大筆的開(kāi)支。另,本發(fā)明所述的基于經(jīng)緯度定位行政區(qū)劃的方法無(wú)需依賴外部接口,數(shù)據(jù)可以完全保存在內(nèi)存中,因此不用承擔(dān)任何接口調(diào)用方式所帶來(lái)的風(fēng)險(xiǎn)。且由于行政區(qū)劃本身的穩(wěn)定性,因此數(shù)據(jù)本身可以長(zhǎng)時(shí)間無(wú)需更新。此外,本發(fā)明的可擴(kuò)展性和靈活性很強(qiáng),例如想要定位粒度更細(xì)的行政區(qū)劃(如市區(qū)、鄉(xiāng)鎮(zhèn)等),用戶可以下載國(guó)家基礎(chǔ)地理信息系統(tǒng)提供的免費(fèi)測(cè)繪數(shù)據(jù),直接用本發(fā)明提出的方法進(jìn)行處理即可,代碼僅需做少量更改且不會(huì)影響之前的功能。\n[0082] 以上所述,僅是本發(fā)明的較佳實(shí)施例而已,并非對(duì)本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的技術(shù)內(nèi)容作出些許更動(dòng)或修飾為等同變化的等效實(shí)施例,但凡是未脫離本發(fā)明技術(shù)方案內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。