本發(fā)明涉及電子地圖領域,尤其涉及一種電子地圖中的面狀圖元名稱的標注位置確定方法及裝置。
背景技術:
電子地圖是利用計算機技術,以數(shù)字方式存儲和查閱的地圖,用戶可以通過電子地圖查找地點、查找出行路線等。電子地圖的出現(xiàn),方便了人們的生活和工作。
電子地圖數(shù)據(jù)至少包括三種數(shù)據(jù):面狀圖元(實際上用一個多邊形表示)、線和點,其中,面狀圖元用于表示現(xiàn)實中的水域、綠地、島嶼、行政區(qū)域等。如圖1所示的人民公園在電子地圖中可以制作為一個五邊形的面狀圖元。
通常,現(xiàn)有技術在電子地圖中標注面狀圖元名稱的方法是:針對任一面狀圖元,首先確定該面狀圖元的外包矩形框,然后計算該外包矩形框的中心點位置,將所述中心點位置設置為在電子地圖中標注該面狀圖元的名稱的位置。
然而,發(fā)明人在對現(xiàn)有技術進行研究的過程中發(fā)現(xiàn),對于不規(guī)則的面狀圖元,將外包矩形框的中心點位置作為標注面狀圖元名稱的位置,會出現(xiàn)標注的名稱超出面狀圖元覆蓋范圍或者與相鄰面狀圖元標注的名稱交疊的問題,導致電子地圖顯示效果變差。如圖2所示電子地圖中標注的面狀圖元昆明湖的名稱“昆明湖”超出了昆明湖覆蓋范圍。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種電子地圖中的面狀圖元名稱的標注位置確定方法及裝置,以克服相關技術中標注面狀圖元名稱造成電子地圖的顯示效果差的 問題。
一方面,本發(fā)明提供一種電子地圖中的面狀圖元名稱的標注位置確定方法,包括:
獲取面狀圖元的外接多邊形的中心點位置;
依據(jù)所述外接多邊形的中心點位置,獲取所述面狀圖元的內(nèi)接多邊形的中心點位置;
將所述內(nèi)接多邊形的中心點位置設為標注所述面狀圖元的名稱的參考位置。
另一方面,本發(fā)明提供一種電子地圖中的面狀圖元名稱的標注位置確定裝置,包括:
外中心點位置獲取模塊,用于針獲取面狀圖元的外接多邊形的中心點位置;
內(nèi)中心點位置獲取模塊,用于依據(jù)所述外接多邊形的中心點位置,獲取所述面狀圖元的內(nèi)接多邊形的中心點位置;
參考位置確定模塊,用于將所述內(nèi)接多邊形的中心點位置設為標注所述面狀圖元的名稱的參考位置。
本發(fā)明至少具有以下有益效果:本發(fā)明提供一種電子地圖中的面狀圖元名稱的標注位置確定方法,在該方法中,將面狀圖元的內(nèi)接多邊形的中心點位置設為標注所述面狀圖元的名稱的參考位置。本發(fā)明將面狀圖元的內(nèi)接多邊形的中心點位置設為標注所述面狀圖元名稱的參考位置,而內(nèi)接多邊形是面狀圖元的一個內(nèi)部區(qū)域,由此可見,本發(fā)明將標注面狀圖元的名稱的區(qū)域范圍縮小到了面狀圖元的內(nèi)部,因此,基于本發(fā)明提供的技術方案能夠解決現(xiàn)有技術標注的名稱超出面狀圖元覆蓋范圍或者與相鄰面狀圖元標注的名稱交疊的問題,提高了電子地圖的顯示效果。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
附圖說明
圖1為現(xiàn)有技術中面狀圖元及其名稱的示意圖;
圖2為采用現(xiàn)有技術標注昆明湖的面狀圖元的名稱的效果圖;
圖3為本發(fā)明實施例中電子地圖中的面狀圖元名稱的標注位置確定方法的示例性流程圖之一;
圖4為本發(fā)明實施例中確定目標圓心位置的示意圖;
圖5為本發(fā)明實施例中電子地圖中的面狀圖元名稱的標注位置確定方法的示例性流程圖之二;
圖6為采用本發(fā)明提供技術方案標注昆明湖的面狀圖元的名稱的效果圖;
圖7為本發(fā)明實施例中電子地圖中的面狀圖元名稱的標注位置確定裝置的示意圖。
具體實施方式
以下結合附圖對本發(fā)明的實施例進行說明,應當理解,此處所描述的實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
本發(fā)明提供一種電子地圖中的面狀圖元名稱的標注位置確定方法,在該方法中,將面狀圖元的內(nèi)接多邊形的中心點位置設為標注所述面狀圖元的名稱的參考位置。本發(fā)明將面狀圖元的內(nèi)接多邊形的中心點位置設為標注所述面狀圖元名稱的參考位置,而內(nèi)接多邊形是面狀圖元的一個內(nèi)部區(qū)域,由此可見,本發(fā)明將標注面狀圖元的名稱的區(qū)域范圍縮小到了面狀圖元的內(nèi)部,因此,基于 本發(fā)明提供的技術方案能夠解決現(xiàn)有技術標注的名稱超出面狀圖元覆蓋范圍或者與相鄰面狀圖元標注的名稱交疊的問題,提高了電子地圖的顯示效果。
下面對本發(fā)明實施例中電子地圖中的面狀圖元名稱的標注位置確定方法進行詳細說明。
實施例一
如圖3所示,為本發(fā)明實施例中電子地圖中的面狀圖元名稱的標注位置確定方法的示例性流程圖,該方法包括以下步驟:
步驟301:獲取面狀圖元的外接多邊形的中心點位置。
步驟302:依據(jù)所述外接多邊形的中心點位置,獲取所述面狀圖元的內(nèi)接多邊形的中心點位置。
其中,為了在面狀圖元內(nèi)部找到一個能夠用于標注名稱的最大區(qū)域,步驟302中的內(nèi)接多邊形可以是圓形、矩形、橢圓形等,內(nèi)接多邊形的具體形狀可以取決于面狀圖元的形狀。
步驟303:將所述內(nèi)接多邊形的中心點位置設為標注所述面狀圖元的名稱的參考位置。
其中,較佳的,為進一步提高電子地圖的顯示效果,避免標注的名稱超出面狀圖元覆蓋范圍或者與相鄰面狀圖元標注的名稱交疊的問題,以所述參考位置為基準,將所述面狀圖元的名稱標注在所述內(nèi)接多邊形的內(nèi)部。需要說明的是,當面狀圖元的名稱可以縮放時,也可以根據(jù)內(nèi)接多邊形的具體形狀,確定該面狀圖元的名稱的排版方式,以使該面狀圖元的名稱標注在所述內(nèi)接多邊形的內(nèi)部。其中,排版方式包括字符的排列方向、字符大小、字間距、行間距、每一行的字符數(shù)等。
前文所述內(nèi)接多邊形可以是矩形、圓形或者其他多邊形,以下分別以矩形和圓形為例,對本發(fā)明實施例提供的依據(jù)所述外接多邊形的中心點位置,獲取所述面狀圖元的內(nèi)接多邊形的中心點位置具體實施手段進行詳細介紹。
第一,當內(nèi)接多邊形為矩形時,上述依據(jù)所述外接多邊形的中心點位置, 獲取所述面狀圖元的內(nèi)接多邊形的中心點位置具體包括:
步驟A1:獲取面狀圖元的外接多邊形的中心點位置,并將該中心點位置作為初始中心點位置。
步驟A2:遍歷所述面狀圖元邊界上的形狀點,查找以所述初始中心點位置為中心點,且以至少一個面狀圖元邊界上的形狀點為頂點的內(nèi)接矩形,并獲取所述內(nèi)接矩形的面積。
步驟A3:按預定的步長移動所述中心點位置,判斷移動后的中心點位置是否超出或者落在所述面狀圖元的邊界上,如果是,則進入步驟A4,否則,將以移動后的中心點位置作為初始中心點位置,返回步驟A2。
步驟A4:比較所有內(nèi)接矩形的面積,將面積最大的一個內(nèi)接矩形的對應的初始中心點位置確定為所述面狀圖元的內(nèi)接多邊形的中心點位置。
第二,當內(nèi)接多邊形為內(nèi)切圓時,上述依據(jù)所述外接多邊形的中心點位置,獲取所述面狀圖元的內(nèi)接多邊形的中心點位置具體包括:
步驟B1:將所述外接多邊形的中心點位置作為所述內(nèi)切圓的初始圓心位置。
其中,較佳的外包圍框可以是矩形外包圍框,也可以是圓形外包圍框等,具體實施時,可以根據(jù)實際需要確定,本發(fā)明對此不做限定。
步驟B2:獲取初始圓心位置到所述外接多邊形各條邊的距離。
步驟B3:按預置的步長移動所述初始圓心位置,得到目標圓心位置。
步驟B4:獲取目標圓心位置到所述外接多邊形各條邊的距離。
步驟B5:比較初始圓心位置到所述外接多邊形各條邊的最短距離與目標圓心位置到所述外接多邊形各條邊的最短距離的大小。
步驟B6:若初始圓心位置到所述外接多邊形各條邊的最短距離小于所述目標圓心位置到所述外接多邊形各條邊的最短距離,則將所述目標圓心位置作為所述內(nèi)切圓的初始圓心位置,并返回步驟B2。
步驟B7:若初始圓心位置到所述外接多邊形各條邊的最短距離大于等于 目標圓心位置到所述外接多邊形各條邊的最短距離時,則按比例縮短所述步長,得到新的步長。
步驟B8:若新的步長小于預置的步長閾值,則將所述初始圓心位置作為面狀圖元的內(nèi)切圓的中心點位置,若新的步長大于等于預置的步長閾值,則將所述新的步長作為預置的步長,并返回步驟B3。
其中,在一個實施例中,步驟B3可具體執(zhí)行為以下操作:
步驟C1:獲取初始圓心位置到所述外接多邊形的第一邊和第二邊的垂足位置點A和垂足位置點B,所述第一邊和第二邊分別是初始圓心位置到所述外接多邊形各條邊的最短距離和次短距離對應的邊。
步驟C2:根據(jù)以下公式(1),在所述垂足位置點A與所述垂足位置點B的連線上選取參考位置點C:
CA/CB=OA/OB (1)
其中,在公式(1)中,所述O表示初始圓心位置;所述A表示所述垂足位置點A;所述B表示所述垂足位置點B;所述C表示所述參考位置點;所述OA表示所述初始圓心位置與所述垂足位置點A之間的距離;所述OB表示所述初始圓心位置與所述垂足位置點B之間的距離;所述CA表示所述參考位置點與所述垂足位置點A之間的距離;所述CB表示所述參考位置點與所述垂足位置點B之間的距離。
步驟C3:獲取位于所述參考位置點C和所述初始圓心位置的連線的延長線上且到初始圓心位置的距離等于預置的步長的位置點,并將該位置點作為目標圓心位置。
其中,在一個實施例中,步驟C3可以執(zhí)行為:根據(jù)以下公式(2)計算目標圓心位置的橫坐標和縱坐標;
其中,在公式(2)中,所述o'x表示目標圓心位置的橫坐標;所述d表示預置的步長;所述ox表示初始圓心位置的橫坐標;所述cx表示參考位置點C的橫坐標;所述Dco表示參考位置點C至初始圓心位置的距離;所述o'y表示目標圓心位置的縱坐標;所述oy表示初始圓心位置的縱坐標;所述cy表示參考位置點C的縱坐標。
其中,確定目標圓心位置的方法的示意圖如圖4所示:在圖4中,首先確定出面狀圖元的外接多邊形的中心點位置O,并將該中心位置作為初始圓心位置,然后計算初始圓心位置O至面狀圖元的各邊的距離,其中,O至面狀圖元的邊L1的距離最短,至面狀圖元的邊L2的距離為次短距離。在圖4中點A為O至L1的垂足位置點、B為O至L2的垂足位置點,R1表示O、A兩點之間的距離、R2表示O、B兩點之間的距離。確定出垂足位置點之后,根據(jù)公式(1)在垂足位置點A、B的連線上確定出參考位置點C。然后,再根據(jù)公式(2),以a為預置的步長,在CO的延長線上確定出目標圓心位置O’。之后,計算O’至面狀圖元的各邊的距離,并獲取O’至面狀圖元的各邊的最短距離。在圖4中,表示O’至邊L1的距離R1’仍然為最短距離,由圖4可知,R1’大于R1,故此,可以則O’作為新的初始圓心位置,繼續(xù)尋找目標位置點,直至找到最大內(nèi)切圓的圓心為止。
通過以上方法,確定出的內(nèi)切圓是面狀圖元的最大內(nèi)切圓,而最大內(nèi)切圓是面狀圖元內(nèi)部最大的可以標注名稱的區(qū)域,因此,本發(fā)明實施例提供的技術方案能夠避免標注的名稱超出面狀圖元覆蓋范圍或者與相鄰面狀圖元標注的名稱交疊的問題,從而提高電子地圖的顯示質(zhì)量。
綜上可知,本發(fā)明實施例中,本發(fā)明提供一種電子地圖中的面狀圖元名稱的標注位置確定方法,在該方法中,將面狀圖元的內(nèi)接多邊形的中心點位置設為標注所述面狀圖元的名稱的參考位置。本發(fā)明將面狀圖元的內(nèi)接多邊形的中心點位置設為標注所述面狀圖元名稱的參考位置,而內(nèi)接多邊形是面狀圖元的一個內(nèi)部區(qū)域,由此可見,本發(fā)明將標注面狀圖元的名稱的區(qū)域范圍縮小到了 面狀圖元的內(nèi)部,因此,基于本發(fā)明提供的技術方案能夠解決現(xiàn)有技術標注的名稱超出面狀圖元覆蓋范圍或者與相鄰面狀圖元標注的名稱交疊的問題,提高了電子地圖的顯示效果。
此外,本發(fā)明實施例提供的方法當應用于電子地圖數(shù)據(jù)的制作過程中時,由于是在面狀圖元內(nèi)部確定內(nèi)接多邊形作為標注名稱的區(qū)域,可以不關心各面狀圖元對應的具體名稱。因此,本發(fā)明實施例提供方法能夠以較高的效率完成面狀圖元的名稱的標注位置的確定。
實施例二
昆明湖在電子地圖中的面狀圖元,是一個不規(guī)則的多邊形,下面以將昆明湖的面狀圖元的名稱標注在該面狀圖元的最大內(nèi)切圓處為例,對本發(fā)明實施例中的電子地圖中的面狀圖元名稱的標注方法進行詳細說明,如圖5所示,該方法包括以下步驟:
步驟501:確定昆明湖的面狀圖元的外接多邊形的中心點位置,并將所述中心點位置作為所述內(nèi)切圓的初始圓心位置。
步驟502:獲取初始圓心位置到所述外接多邊形各條邊的距離。
步驟503:獲取初始圓心位置到所述外接多邊形的第一邊和第二邊的垂足位置點A和垂足位置點B,所述第一邊和第二邊分別是初始圓心位置到所述外接多邊形各條邊的最短距離和次短距離對應的邊。
步驟504:根據(jù)公式(1),在所述垂足位置點A與所述垂足位置點B的連線上選取參考位置點C。
其中公式(1)已在實施例一中詳細說明,在此不再贅述。
步驟505:根據(jù)公式(2)計算目標圓心位置的橫坐標和縱坐標,以獲得目標圓心位置。
其中公式(2)已在實施例一中詳細說明,在此不再贅述。
步驟506:獲取目標圓心位置到所述外接多邊形各條邊的距離。
步驟507:判斷初始圓心位置到所述外接多邊形各條邊的最短距離是否小 于目標圓心位置到所述外接多邊形各條邊的最短距離,若是,則執(zhí)行步驟508,若否,則執(zhí)行步驟509。
步驟508:將所述目標圓心位置作為所述內(nèi)切圓的初始圓心位置,并返回步驟502。
步驟509:按比例縮短所述步長,得到新的步長,若新的步長小于預置的步長閾值,則將所述初始圓心位置作為面狀圖元的內(nèi)切圓的中心點位置,若新的步長大于等于預置的步長閾值,則將所述新的步長作為預置的步長,并返回步驟503。
步驟510:將確定的面狀圖元的內(nèi)切圓的中心點位置設為標注所述面狀圖元的名稱的參考位置。
步驟511:以所述參考位置為基準,將所述面狀圖元的名稱標注在所述內(nèi)接多邊形的內(nèi)部。
其中,通過以上步驟501-步驟511標注昆明湖的面狀圖元的名稱后的效果圖如圖6所示,對比圖6和圖2(圖2為現(xiàn)有技術中標注的面狀圖元昆明湖的名稱“昆明湖”的示意圖)可知,相對于現(xiàn)有技術中,本發(fā)明標注的昆明湖的面狀圖元的名稱,不再與面狀圖元的邊界交疊。故此,本發(fā)明實施例提供的電子地圖中的面狀圖元名稱的標注位置的確定方法能夠提高電子地圖的顯示效果。
實施例三
基于相同的發(fā)明構思,本發(fā)明還提供一種電子地圖中的面狀圖元名稱的標注位置確定裝置,如圖7所示,所述裝置包括:
外中心點位置獲取模塊701,用于針獲取面狀圖元的外接多邊形的中心點位置;
內(nèi)中心點位置獲取模塊702,用于依據(jù)所述外接多邊形的中心點位置,獲取所述面狀圖元的內(nèi)接多邊形的中心點位置;
參考位置確定模塊703,用于將所述內(nèi)接多邊形的中心點位置設為標注所 述面狀圖元的名稱的參考位置。
其中,在一個實施例中,所述裝置還包括:
標注模塊,用于將所述內(nèi)接多邊形的中心點位置設為標注所述面狀圖元的名稱的參考位置。
其中,在一個實施例中,所述內(nèi)中心點位置獲取模塊702,具體包括:
初始圓心確定單元,用于若所述內(nèi)接多邊形為內(nèi)切圓時,將所述外接多邊形的中心點位置作為所述內(nèi)切圓的初始圓心位置;
第一距離獲取單元,用于獲取初始圓心位置到所述外接多邊形各條邊的距離;
目標圓心確定單元,用于按預置的步長移動所述初始圓心位置,得到目標圓心位置;
第二距離獲取單元,用于獲取目標圓心位置到所述外接多邊形各條邊的距離;
比較單元,用于比較初始圓心位置到所述外接多邊形各條邊的最短距離與目標圓心位置到所述外接多邊形各條邊的最短距離的大??;
第一處理單元,用于若前者小于后者,則將所述目標圓心位置作為所述內(nèi)切圓的初始圓心位置,并觸發(fā)第一距離獲取單元執(zhí)行操作;
第二處理單元,用于若前者大于等于后者,則按比例縮短所述步長,得到新的步長,若新的步長小于預置的步長閾值,則將所述初始圓心位置作為面狀圖元的內(nèi)切圓的中心點位置,若新的步長大于等于預置的步長閾值,則將所述新的步長作為預置的步長,并觸發(fā)目標圓心確定單元執(zhí)行操作。
其中,在一個實施例中,所述目標圓心確定單元,具體包括:
垂足點獲取子單元,用于獲取初始圓心位置到所述外接多邊形的第一邊和第二邊的垂足位置點A和垂足位置點B,所述第一邊和第二邊分別是初始圓心位置到所述外接多邊形各條邊的最短距離和次短距離對應的邊;
參考位置點獲取子單元,用于根據(jù)公式CA/CB=OA/OB,在所述垂足位 置點A與所述垂足位置點B的連線上選取參考位置點C,其中,O表示初始圓心位置,OA、OB、CA、CB分別表示各位置之間的距離;
目標圓心確定子單元,用于獲取位于所述參考位置點C和所述初始圓心位置的連線的延長線上且到初始圓心位置的距離等于預置的步長的位置點,并將該位置點作為目標圓心位置。
其中,在一個實施例中,所述目標圓心確定子單元,具體用于根據(jù)以下公式計算目標圓心位置的橫坐標和縱坐標;
其中,所述o'x表示目標圓心位置的橫坐標;所述d表示預置的步長;所述ox表示初始圓心位置的橫坐標;所述cx表示參考位置點C的橫坐標;所述Dco表示參考位置點C至初始圓心位置的距離;所述o'y表示目標圓心位置的縱坐標;所述oy表示初始圓心位置的縱坐標;所述cy表示參考位置點C的縱坐標。
關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算 機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。