一種用于電子地圖界面的坐標(biāo)點(diǎn)處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于GIS(地理信息系統(tǒng))應(yīng)用領(lǐng)域,具體地說(shuō)是一種用于電子地圖界面的坐標(biāo)點(diǎn)處理方法及裝置。
【背景技術(shù)】
[0002]目前,Gis(地理信息服務(wù)系統(tǒng))圖標(biāo)聚集是一種用于解決大量定位坐標(biāo)點(diǎn)同時(shí)出現(xiàn)在地圖上,根據(jù)坐標(biāo)點(diǎn)的經(jīng)瑋度,將靠近在一起的多個(gè)圖標(biāo)聚集為單個(gè)圖標(biāo)的一種方法,常用于各種Gis地圖中,如百度地圖,谷歌地圖,高德地圖等。
[0003]現(xiàn)在主流的聚集方法都是用網(wǎng)格方法實(shí)現(xiàn)的,即將一個(gè)面,按行列分為若干個(gè)單元格,并將每個(gè)單元格中所有的圖標(biāo)聚集為一個(gè)。網(wǎng)格的缺點(diǎn)是代碼比較復(fù)雜長(zhǎng),利用循環(huán)遍歷網(wǎng)格計(jì)算,時(shí)間和空間復(fù)雜度高,內(nèi)存占用多,并且每個(gè)網(wǎng)格都要逐一計(jì)算,而有些網(wǎng)格其實(shí)本身不存在點(diǎn),那么就會(huì)造成一些性能上的浪費(fèi)。此外,網(wǎng)格方法劃分的網(wǎng)格數(shù)量相對(duì)固定,無(wú)法在運(yùn)行時(shí)動(dòng)態(tài)修改網(wǎng)格方法的計(jì)算精度和時(shí)間,并且難以做到并行網(wǎng)格聚集計(jì)算。本發(fā)明相比之前的專利創(chuàng)新在很多方面進(jìn)行了改進(jìn)提升,這里列舉下之前申請(qǐng)專利的一些需要提升的地方,用以說(shuō)明我們此次的發(fā)明來(lái)自于發(fā)明人持續(xù)的技術(shù)研深、領(lǐng)悟及創(chuàng)新:
(I)專利號(hào)為“201110442346.3”,名稱為“一種像素坐標(biāo)聚合的方法及裝置”,采用的是像素坐標(biāo)聚合的方法,用以解決現(xiàn)有技術(shù)中的像素坐標(biāo)聚合方法導(dǎo)致聚合后的位置標(biāo)識(shí)不夠準(zhǔn)確的問(wèn)題,該方法將地圖劃分為若干個(gè)柵格,然后對(duì)生產(chǎn)的每個(gè)位置標(biāo)識(shí)進(jìn)行像素坐標(biāo)聚合并顯示,這種方法比較復(fù)雜,計(jì)算比較冗繁,花費(fèi)的時(shí)間也比較長(zhǎng)。
[0004](2)專利號(hào)為“200610144047.0”,名稱為“一種基于地理坐標(biāo)的信息聚合與查詢方法”,該方法通過(guò)互聯(lián)網(wǎng)收集與地理位置有關(guān)的原始信息,形成信息條目,從而實(shí)現(xiàn)查詢,這種方法簡(jiǎn)單的利用現(xiàn)有的資源,并對(duì)其進(jìn)行中整合后方便用戶查詢,不存在二次利用資源的特點(diǎn),功能也非常簡(jiǎn)單,無(wú)法滿足現(xiàn)有的信息聚集的要求。
[0005](3)專利號(hào)為“201210014509.2”,名稱為“一種城市中心區(qū)位置和聚集強(qiáng)度的確定方法”,該方法先將地圖確定幾個(gè)重心,通過(guò)重心的兩兩相連劃分區(qū)域,在現(xiàn)代GIS技術(shù)平臺(tái)的支撐下,根據(jù)三新聚集理論,對(duì)城市地圖進(jìn)行劃分,這種方法前期需要采集大量的數(shù)據(jù),實(shí)用性不強(qiáng),另外,該方法的應(yīng)用范圍也比較小,不能全方位的大面積推廣,且太過(guò)模式化,不能使用在各種情況。
[0006](4)專利號(hào)為“200810211723.0”,名稱為“三角網(wǎng)格系統(tǒng)三維坐標(biāo)系統(tǒng)及距離量測(cè)方法”,該方法基于三角網(wǎng)格系統(tǒng)的計(jì)算,解決了三維坐標(biāo)與傳統(tǒng)行列坐標(biāo)的轉(zhuǎn)換,但是該方法的過(guò)程非常復(fù)雜,計(jì)算速度比較慢,且功能比較單一,無(wú)法快速的達(dá)到客戶的要求。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是針對(duì)上述問(wèn)題,提出一種用于電子地圖界面的坐標(biāo)點(diǎn)處理方法及裝置,對(duì)于坐標(biāo)點(diǎn)分布不均的情況,解決了計(jì)算量大的問(wèn)題,同時(shí)現(xiàn)有的計(jì)算方法解決了過(guò)去傳統(tǒng)方法占用內(nèi)存比較大,且計(jì)算效率不高,耗時(shí)比較長(zhǎng)的問(wèn)題。
[0008]本發(fā)明的技術(shù)方案是:
一種用于電子地圖界面的坐標(biāo)點(diǎn)處理方法,用于GIS服務(wù)的四分格坐標(biāo)聚集,它包括以下步驟:
51、設(shè)置坐標(biāo)點(diǎn)數(shù)據(jù)集模塊和算法粒度的步驟:
將輸入電子地圖界面的電子地圖區(qū)域劃分為左上、右上、左下、右下四個(gè)劃分區(qū)域,分別保存各區(qū)域內(nèi)的坐標(biāo)點(diǎn)信息及該區(qū)域的長(zhǎng)度和寬度信息;
設(shè)置算法粒度即設(shè)定最小網(wǎng)格的長(zhǎng)度和寬度;
52、劃分輸入?yún)^(qū)域的坐標(biāo)點(diǎn)的步驟:遍歷輸入電子地圖界面的電子地圖區(qū)域的所有坐標(biāo)點(diǎn),根據(jù)坐標(biāo)點(diǎn)的位置信息將其分至四個(gè)坐標(biāo)點(diǎn)數(shù)據(jù)集模塊中;
53、判斷各坐標(biāo)點(diǎn)數(shù)據(jù)集模塊中坐標(biāo)點(diǎn)的數(shù)量的步驟:對(duì)于每個(gè)劃分區(qū)域,同時(shí)判斷各坐標(biāo)點(diǎn)數(shù)據(jù)集模塊中坐標(biāo)點(diǎn)的數(shù)量是否大于I:
若大于I則轉(zhuǎn)步驟S4;
若等于I則在該劃分區(qū)域創(chuàng)建一個(gè)非匯聚圖標(biāo)存儲(chǔ)模塊,結(jié)束該劃分區(qū)域的計(jì)算, 若小于I即等于O則結(jié)束該劃分區(qū)域的計(jì)算;
54、判斷當(dāng)前劃分區(qū)域是否滿足算法粒度的步驟:判斷當(dāng)前劃分區(qū)域?qū)?yīng)的坐標(biāo)點(diǎn)數(shù)據(jù)集模塊的長(zhǎng)度和寬度信息是否滿足設(shè)定的算法粒度:
若不滿足設(shè)定的算法粒度則將該劃分區(qū)域視為輸入?yún)^(qū)域,轉(zhuǎn)步驟S2進(jìn)入劃分輸入?yún)^(qū)域的步驟進(jìn)行遞歸計(jì)算;
若滿足設(shè)定的算法粒度則創(chuàng)建一個(gè)匯聚圖標(biāo)存儲(chǔ)模塊,結(jié)束該劃分區(qū)域的計(jì)算,按照前述步驟對(duì)輸入電子地圖界面的電子地圖進(jìn)行處理,完成坐標(biāo)聚集。
[0009]本發(fā)明的步驟S2中,坐標(biāo)點(diǎn)的位置信息包括坐標(biāo)點(diǎn)的經(jīng)瑋度信息。
[0010]本發(fā)明的步驟S3中,創(chuàng)建一個(gè)非匯聚圖標(biāo)存儲(chǔ)模塊,將坐標(biāo)點(diǎn)保存在非匯聚圖標(biāo)存儲(chǔ)模塊中,添加該坐標(biāo)點(diǎn)的屬性使其形成非匯聚圖標(biāo),至少將該區(qū)域中坐標(biāo)點(diǎn)、非匯聚圖標(biāo)以及該區(qū)域的位置信息保存在該非匯聚圖標(biāo)存儲(chǔ)模塊中。
[0011]本發(fā)明的步驟S4中,創(chuàng)建一個(gè)匯聚圖標(biāo)存儲(chǔ)模塊,是在對(duì)應(yīng)區(qū)域選取一個(gè)點(diǎn)作為顯示坐標(biāo)點(diǎn),添加該顯示坐標(biāo)點(diǎn)的屬性使其形成匯聚圖標(biāo),至少將該區(qū)域中坐標(biāo)點(diǎn)所對(duì)應(yīng)的坐標(biāo)點(diǎn)、匯聚圖標(biāo)以及該區(qū)域的位置信息保存在該匯聚圖標(biāo)存儲(chǔ)模塊中。
[0012]本發(fā)明的顯示坐標(biāo)點(diǎn)是取當(dāng)前劃分區(qū)域中所有坐標(biāo)點(diǎn)坐標(biāo)值的平均值,或取匯聚時(shí)的區(qū)域的中心點(diǎn)的坐標(biāo)值。
[0013]本發(fā)明的顯示坐標(biāo)點(diǎn)的屬性至少包括信息窗口和點(diǎn)擊事件信息。
[0014]本發(fā)明的在于區(qū)域的位置信息用兩點(diǎn)表示。
[0015]本發(fā)明的電子地圖界的面優(yōu)選為GIS地理信息系統(tǒng)。
[0016]一種用于電子地圖界面的坐標(biāo)點(diǎn)處理方法的裝置,它包括:
設(shè)置坐標(biāo)點(diǎn)數(shù)據(jù)集模塊和算法粒度的單元:用于將輸入電子地圖界面的電子地圖區(qū)域劃分為左上、右上、左下、右下四個(gè)劃分區(qū)域,分別保存各區(qū)域內(nèi)的坐標(biāo)點(diǎn)信息及該區(qū)域的長(zhǎng)度和寬度信息;設(shè)置算法粒度即設(shè)定最小網(wǎng)格的長(zhǎng)度和寬度;
劃分輸入?yún)^(qū)域的坐標(biāo)點(diǎn)的單元:用于遍歷輸入電子地圖界面的電子地圖區(qū)域的所有坐標(biāo)點(diǎn),根據(jù)坐標(biāo)點(diǎn)的位置信息將其分至四個(gè)坐標(biāo)點(diǎn)數(shù)據(jù)集模塊中; 判斷各坐標(biāo)點(diǎn)數(shù)據(jù)集模塊中坐標(biāo)點(diǎn)的數(shù)量的單元:用于對(duì)于每個(gè)劃分區(qū)域,分別判斷對(duì)應(yīng)的坐標(biāo)點(diǎn)數(shù)據(jù)集模塊中坐標(biāo)點(diǎn)的數(shù)量是否大于1:若大于I則轉(zhuǎn)步驟S4;若等于I則在該劃分區(qū)域創(chuàng)建一個(gè)非匯聚圖標(biāo)存儲(chǔ)模塊,結(jié)束該劃分區(qū)域的計(jì)算,若小于I即等于O則結(jié)束該劃分區(qū)域的計(jì)算;
判斷當(dāng)前劃分區(qū)域是否滿足算法粒度的單元:用于判斷當(dāng)前劃分區(qū)域?qū)?yīng)的坐標(biāo)點(diǎn)數(shù)據(jù)集模塊的長(zhǎng)度和寬度信息是否滿足設(shè)定的算法粒度:若不滿足設(shè)定的算法粒度則將該劃分區(qū)域視為輸入?yún)^(qū)域,轉(zhuǎn)步驟S2進(jìn)入劃分輸入?yún)^(qū)域的步驟進(jìn)行遞歸計(jì)算;若滿足設(shè)定的算法粒度則創(chuàng)建一個(gè)匯聚圖標(biāo)存儲(chǔ)模塊,結(jié)束該劃分區(qū)域的計(jì)算。
[0017]本發(fā)明的有益效果:
本發(fā)明的方法可以解決二維平面內(nèi)坐標(biāo)點(diǎn)聚集計(jì)算等功能,常用于GIS系統(tǒng)中,有效的提高了GIS坐標(biāo)點(diǎn)聚集計(jì)算的效率,縮短了耗時(shí),因?yàn)榇四K的遞歸計(jì)算屬性,具有方法高性能、高效率,并行計(jì)算的優(yōu)點(diǎn),所以該模塊可以處理大量坐標(biāo)點(diǎn)同時(shí)出現(xiàn)的情況,以及在運(yùn)行時(shí)動(dòng)態(tài)切換聚集方法的計(jì)算精度(accuracy),這些都是以往無(wú)法實(shí)現(xiàn)的,具體優(yōu)點(diǎn)如下:
(I)計(jì)算量小:特別是對(duì)于坐標(biāo)點(diǎn)分布不均的情況,如果是網(wǎng)格方法的話,需要計(jì)算每一個(gè)網(wǎng)格,而四分之一切割法對(duì)于那些大區(qū)域中分布坐標(biāo)點(diǎn)很少的情況下,會(huì)動(dòng)態(tài)只劃分很少的區(qū)域并提前結(jié)束計(jì)算,計(jì)算速度性能比普通聚集方法高5-10倍。
[0018](2)占用內(nèi)存少:不需要那么多數(shù)組存儲(chǔ)每個(gè)網(wǎng)格的數(shù)據(jù),四分之一切割法滿足條件直接就在地圖上添加坐標(biāo)點(diǎn),只存儲(chǔ)少量地理坐標(biāo)點(diǎn)數(shù)組。
[0019](3)方法靈活:可以靈活設(shè)置最小粒度的大小,控制方法的計(jì)算量,從而實(shí)現(xiàn)很多高級(jí)功能,如說(shuō)根據(jù)GIS地圖上坐標(biāo)點(diǎn)的數(shù)量動(dòng)態(tài)控制計(jì)算粒度,如果坐標(biāo)點(diǎn)數(shù)量龐大則降低方法計(jì)算粒度,從而減少計(jì)算量;又如說(shuō)根據(jù)地圖當(dāng)前顯示的區(qū)域面積,動(dòng)態(tài)控制計(jì)算粒度等等,地圖向前顯示的面積越小,則設(shè)置聚集計(jì)算的粒度越高。編寫(xiě)的代碼非常精簡(jiǎn),行數(shù)少,而且容易閱讀和維護(hù)。
[0020](4)并行計(jì)算:每次四分格之后,四個(gè)格同時(shí)進(jìn)行并行計(jì)算,分出來(lái)的每個(gè)格子中在進(jìn)行四分格繼續(xù)并行計(jì)算,這種異步并行的計(jì)算方式大大的加快了聚集方法的計(jì)算速度,而這種高密度的并行計(jì)算是傳統(tǒng)的網(wǎng)格聚集計(jì)算難以實(shí)現(xiàn)的。
[0021]
【附圖說(shuō)明】
[0022]圖1為本發(fā)明四分格坐標(biāo)點(diǎn)聚集方法的流程圖。
[0023]圖2為本發(fā)明四分格坐標(biāo)聚集方法執(zhí)行效果示意圖。
[0024]
【具體實(shí)施方式】
[0025]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
[0026]傳統(tǒng)的網(wǎng)格聚集模塊,由于算法精度不夠,計(jì)算耗時(shí)長(zhǎng),不能對(duì)GIS系統(tǒng)中每次地圖縮放,地圖位置移動(dòng)以及坐標(biāo)點(diǎn)模型變化等事件做出迅速的系統(tǒng)反饋。而使用本發(fā)明提供的四分格坐標(biāo)點(diǎn)聚集方法和系統(tǒng),通過(guò)高效能的算法和并行計(jì)算的解決方案,可以滿足GIS系統(tǒng)中對(duì)聚集坐標(biāo)點(diǎn)進(jìn)行高性能的計(jì)算,做出快速的反饋并顯示在GIS系統(tǒng)中,能夠?qū)崿F(xiàn)一些以往不能實(shí)現(xiàn)的功能。
[0027]實(shí)施例一
一種用于電子地圖界面的坐標(biāo)點(diǎn)處理方法,所述方法包括如下步驟:
51、劃分輸入?yún)^(qū)域的步驟:將輸入電子地圖界面的電子地圖區(qū)域劃分為左上、右上、左下、右下四個(gè)劃分區(qū)域,并創(chuàng)建相應(yīng)的四個(gè)坐標(biāo)點(diǎn)數(shù)據(jù)集模塊,LTCol lect1n模塊、RTCollect1n模塊、LBCollect1n模塊以及RBCollect1n模塊,用于保存每個(gè)劃分區(qū)域的坐標(biāo)點(diǎn)信息及每個(gè)劃分區(qū)域的長(zhǎng)度和寬度信息;
52、劃分輸入的坐標(biāo)點(diǎn)的步驟:遍歷輸入電子地圖界面的電子地圖區(qū)域的所有坐標(biāo)點(diǎn),根據(jù)坐標(biāo)點(diǎn)的位置信息(例如坐標(biāo)點(diǎn)的經(jīng)瑋度信息)將其分至