• 
    

    
    

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

      基于MongoDB的地名信息管理

      2014-08-05 05:32:45段麗娟亢曉琛
      測繪通報 2014年10期
      關(guān)鍵詞:字段文檔聚類

      劉 亞,段麗娟,亢曉琛,孫 鎮(zhèn),趙 捷

      (1.北京中誠盛源技術(shù)發(fā)展有限公司,北京 100020;2.武漢大學(xué),湖北武漢 430079;3.中國測繪科學(xué)研究院,北京 100830;4.國家組織機構(gòu)代碼管理中心,北京 100026)

      基于MongoDB的地名信息管理

      劉 亞1,段麗娟1,亢曉琛2,3,孫 鎮(zhèn)4,趙 捷4

      (1.北京中誠盛源技術(shù)發(fā)展有限公司,北京 100020;2.武漢大學(xué),湖北武漢 430079;3.中國測繪科學(xué)研究院,北京 100830;4.國家組織機構(gòu)代碼管理中心,北京 100026)

      一、引 言

      地名是人們對具有特定方位、地理范圍的地理實體賦予的專有名稱,其本質(zhì)屬性包括兩個方面:指位性與社會性。指位性指地名所代表的地理實體在地球表面上具有一定的空間位置;社會性是指地名的命名、更名、發(fā)展、演變始終受到社會因素制約。地名信息系統(tǒng)(geographic names information system,GNIS)是由美國地質(zhì)勘察局(U.S.Geological Survey)聯(lián)合地名委員會(U.S.Board on Geographic Names)建立的自然與文化中包含了地理位置與名稱的數(shù)據(jù)庫,其目的在于促進地名信息的標準化[1]。在地理信息系統(tǒng)中,實體的定位依據(jù)是實體所在的地理位置[2]。地理位置是一個抽象的概念,難以進行操作,因此在城市地名庫的建立過程中,地名成為人與計算機或者手持設(shè)備進行溝通的紐帶。Excite是全球領(lǐng)先的個性化門戶網(wǎng)站,提供頂級搜索功能、門戶網(wǎng)站,郵件服務(wù),即時通信等服務(wù),根據(jù)該網(wǎng)站統(tǒng)計,與地理位置相關(guān)的查詢約占所有查詢的1/5,而出現(xiàn)頻率最高的關(guān)鍵字是地名[3]。在二維空間與三維空間應(yīng)用中,地名數(shù)據(jù)可用于各類名稱檢索、空間范圍查詢,用于輔助空間信息可視化。在基于Web方式的地名標注應(yīng)用中,不同的地物點往往對應(yīng)不同類型、不同個數(shù)的字段。這種特殊的需求對傳統(tǒng)的模式化關(guān)系數(shù)據(jù)庫提出了極大的挑戰(zhàn)。在城市快速發(fā)展的背景下,城市地名表現(xiàn)出數(shù)量多、密度大、使用率極高等一系列特點[4]。因此,需要良好的數(shù)據(jù)組織模型與數(shù)據(jù)庫解決方案來支持地名的快速查詢。

      MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,能夠為Web應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案,具有模式自由、支持二維地理空間索引、可存儲二進制數(shù)據(jù)對象、支持查詢和網(wǎng)絡(luò)訪問等一系列優(yōu)點[5]。MongoDB將關(guān)系型數(shù)據(jù)庫中“行”的概念轉(zhuǎn)換為“文檔”,支持文檔數(shù)據(jù)的內(nèi)嵌。由于無模式限制,MongoDB可為不同的地名提供多樣化的字段定義,而無須大量遷移數(shù)據(jù),從而使得數(shù)據(jù)模型具備靈活變更的能力。此外,MongoDB默認的存儲引擎中使用了內(nèi)存映射文件,將內(nèi)存管理交付操作系統(tǒng),其傳輸協(xié)議采用預(yù)分配策略,用空間換取性能穩(wěn)定,優(yōu)越的性能使其具備存儲管理大規(guī)模地名數(shù)據(jù)、應(yīng)對多樣化存儲需求的能力。

      本文所設(shè)計的地名信息管理系統(tǒng)以MongoDB為底層存儲解決方案。在此基礎(chǔ)上,設(shè)計了基于K-means聚類算法的地名層次組織模型,并用文檔字段來表征不同地名之間的級別關(guān)系。為便于地名應(yīng)用訪問地名庫,設(shè)計與實現(xiàn)一系列地名文檔信息操作接口,用于支持地名入庫、建立空間索引、地名修改、地名查詢(范圍查詢、鄰近查詢及名稱查詢)等。

      二、地名數(shù)據(jù)組織模型

      地名數(shù)據(jù)組織模型描述了整個地名信息庫的層次組織結(jié)構(gòu),而這種層次關(guān)系需要通過單個地名文檔的結(jié)構(gòu)字段來表達。具體定位一個位置時,還需要空間索引來輔助操作以提高地名檢索的效率。

      1.基于K-means聚類算法的地名數(shù)據(jù)樹模型

      在二維或三維可視化應(yīng)用中,為了確保顯示效率與地圖要素不過于擁擠,單次顯示地名不能過于密集。在城市地區(qū),即使很小的地理范圍,對應(yīng)的地名數(shù)據(jù)可能較眾多。而在農(nóng)村偏遠地區(qū),地名分布則可能較為稀疏。此外,地名具有行政歸屬,即不同地名節(jié)點之間可能具有從屬關(guān)系(如海淀區(qū)節(jié)點屬于北京市節(jié)點)。因此,必須采用分級的策略,同時兼顧地名密度。

      K-means算法是經(jīng)典的基于劃分的聚類算法,其基本思想是:以空間中的k個點為中心進行聚類,對靠近他們的對象進行歸類。通過迭代方法,逐次更新聚類中心的值,直至得到理想的聚類結(jié)果。

      為了同時兼顧地名行政歸屬與地名分布密度,首先將主要的地名按行政級別劃分為4個級別:0級(國家級)、1級(省、自治區(qū)、直轄市級)、2級(省會城市及地級市)、3級(區(qū)、縣、縣級市)。然后對從屬于3級的大量的低級地名進行聚類劃分,使得4級地名(聚類中心)與5級地名(村、鎮(zhèn))均保持有相對平衡的節(jié)點數(shù)目。地名的層次結(jié)構(gòu)如圖1所示。

      圖1 地名層次結(jié)構(gòu)圖

      2.地名結(jié)構(gòu)描述

      為了在數(shù)據(jù)庫中表達以上的層次關(guān)系,所有地名節(jié)點必須需具備最基本的一系列字段,用于反映上下級地名之間的關(guān)系。通過基本字段描述,整個地名數(shù)據(jù)庫的邏輯結(jié)構(gòu)可得到有效表達。其他可選字段則是可根據(jù)需求動態(tài)進行添加、刪除、編輯。地名節(jié)點的字段列舉如下:

      1)地名標識(必選):唯一值,不允許重復(fù),用于標識唯一一個節(jié)點。

      2)地名名稱(必選):描述該節(jié)點的地理名稱。

      3)地名位置(必選):以經(jīng)緯度方式表達的獨立坐標位置。

      4)地名級別(必選):取0~5中的一個值。

      5)子節(jié)點個數(shù)(必選):從屬于當前節(jié)點的子節(jié)點個數(shù)。

      6)父節(jié)點標識(必選):所屬節(jié)點標識。

      7)標注信息1(可選):如文字信息。

      8)標注信息2(可選):如圖片信息。

      9)標注信息3(可選):如視頻信息。

      10)……

      對于任意一個地名(假設(shè)標識為N,父節(jié)點標識為M,級別位L),可以獲取它的父節(jié)點及子節(jié)點列表。由于每個地名記錄存儲了父節(jié)點標識,根據(jù)標識M可直接訪問父節(jié)點的地名信息。由于子節(jié)的地名與父節(jié)點地名的級別差為1,聯(lián)合查詢級別與父節(jié)點標識兩項字段即可返回當前地名的下級地名信息,即查詢級別為L-1,且父節(jié)點為N的所有地名文檔。為了加速索引過程,需要對標識、父節(jié)點標識及地名級別建立索引。

      在MongoDB數(shù)據(jù)庫中,采用了JSON(javascript object notation)格式來表述。單個地名的文本表達方式如下(以最低級的村莊地名文檔為例):

      3.索 引

      在進行空間檢索之前,需對空間范圍內(nèi)的地理要素構(gòu)建空間索引,以便于按范圍訪問。由于地名數(shù)據(jù)位置信息為空間點位置,對應(yīng)的空間索引也針對點集進行構(gòu)建。Mongodb將整個地理范圍劃分為坐標網(wǎng)格,并采用geohash方式對網(wǎng)格進行編碼,然后計算各個坐標位置對應(yīng)的geohash值。計算geohash需要將二維空間范圍迭代劃分為4個象限,然后為對每個象限進行雙位編碼。如圖2所示,一個4象限可以表達為4個兩位數(shù)字(如00,10,01,11)。每個兩位數(shù)對應(yīng)一個象限與所有位于對應(yīng)象限內(nèi)的坐標位置。這樣,所有位于左下角的點,均對應(yīng)的geohash值均為00,以此類推,左上為01,右下為10,右上為11。要提高檢索精度,可對每個象限作進一步劃分。這樣,每個坐標位置將對應(yīng)更長的檢索位。

      圖2 空間劃分與空間索引

      在將地名信息導(dǎo)入到數(shù)據(jù)庫后,選擇標識地理位置的字段(如經(jīng)度、緯度)創(chuàng)建空間索引。MongoDB已經(jīng)提供了空間范圍的默認劃分方式,并提供了對球面計算與平面幾何計算的支持,只需要調(diào)用相關(guān)命令創(chuàng)建即可。

      三、地名庫接口設(shè)計與實現(xiàn)

      地名數(shù)據(jù)管理系統(tǒng)需要實現(xiàn)基本的數(shù)據(jù)錄入、數(shù)據(jù)修改,空間索引建立、各種空間查詢接口,以便于外部應(yīng)用訪問。

      數(shù)據(jù)錄入接口提供了按行讀取文本方式,字段的定義在首行。通過對首行文本的分析,可得到所有字段名稱及類型。其格式定義如下:

      Field1(Type)Field2(Type)Field3(Type)……

      讀取首行信息后,可得到基本的地名結(jié)構(gòu)描述定義,從而錄入各個字段。數(shù)據(jù)錄入接口的定義較為簡單,只需要提供文件路徑即可,其定義如下:

      void ImportFromTxt(const char?filepathname)

      空間索引是進行空間查詢的基礎(chǔ),必須在查詢之前進行構(gòu)建。構(gòu)建空間索引時,需要指定坐標對的具體字段。本系統(tǒng)支持二維空間坐標索引,需提供標識橫坐標與縱坐標的兩個字段。接口定義如下:

      數(shù)據(jù)修改針對某個具體記錄進行,需提供對應(yīng)的記錄標識。為了快速定位修改對象,需要對所有記錄預(yù)先按照標識字段構(gòu)建索引。其接口定義如下:

      空間查詢包括了按照范圍、空間臨近及按字段名稱查詢。其定義為:

      其中,f定義了被查詢的字段,value定義了被查詢值。

      地名管理引擎的實現(xiàn)基于MongoDB所提供的C++driver完成。通過封裝成動態(tài)鏈接庫或可執(zhí)行文件,以方便在二維與三維應(yīng)用中調(diào)用。在應(yīng)用中,往往需要組合調(diào)用多個接口來實現(xiàn)特定的數(shù)據(jù)更新需求。一般流程為:①選擇所需的查詢接口來定位需要更新的地名文檔;②根據(jù)定名標識逐個更新地名。

      四、應(yīng) 用

      本系統(tǒng)已成功應(yīng)用于基于Web方式的地名標注地理信息系統(tǒng)與三維地名可視化系統(tǒng)平臺。在地名標注地理信息系統(tǒng)中,用戶可在地圖背景下動態(tài)添加點或線類型的地名標注。對于不同的標注項,用戶可以個性化地增加標注內(nèi)容,如文字,圖片及上傳的其他相關(guān)文件。不同標注項對標注內(nèi)容的個數(shù)沒有限制。Web端所標注的信息可動態(tài)插入到對應(yīng)地名文檔中,各地名文檔均不受模式約束。

      在三維應(yīng)用中,地名數(shù)據(jù)以獨立的顯示圖層加載到三維引擎中。為確保地名渲染速度及解決圖面地名擁擠問題,地名的展示應(yīng)依尺度進行變化,即隨著可視化尺度的變化,地名數(shù)據(jù)可動態(tài)顯示或隱藏,以確保顯示調(diào)度的效率。圖3與圖4為同一地區(qū)兩個不同尺度的地名顯示狀態(tài)。在圖3對應(yīng)的尺度下,僅顯示了地級市級別的地名(如長沙市、南昌市)。在此基礎(chǔ)上,經(jīng)過地圖放大,縣級市的地名則全部顯示出來(如圖4所示)。通過地名層次組織結(jié)構(gòu),不同的層次細節(jié)信息得到調(diào)度顯示。

      圖3 三維地名可視化―――尺度1

      圖4 三維地名可視化―――尺度2

      五、結(jié)束語

      基于MongoDB的地名數(shù)據(jù)管理可支持大量地名信息存儲,查詢方式及自定義方式更新等需求。傳統(tǒng)關(guān)系型數(shù)據(jù)的模式化限制得到有效解決,從而支持多樣化地名標注。內(nèi)置的空間索引功能,使得基于關(guān)系數(shù)據(jù)庫開發(fā)地名信息系統(tǒng)的復(fù)雜度得到有效降低。通過在地名標注地理信息系統(tǒng)與三維地名可視化應(yīng)用中發(fā)現(xiàn),基于MongoDB的地名信息管理是可行的技術(shù)方案。

      [1]HILL L L,F(xiàn)REW J,ZHENG Q.Geographic Name[J]. D-Lib Magazine,1999,5(1):17.

      [2]江春發(fā).城市地名庫的建立[J].測繪通報,2000 (9):23-24.

      [3]SANDERSON M,KOHLER J.Analyzing Geographic Queries[C]∥SIGIR Workshop on Geographic Information Retrieval.[S.l.]:[s.n.],2004,2.

      [4]傅立憲.上海市地名管理信息系統(tǒng)設(shè)計思想[J].中國地名,1997(2):29-30.

      [5]MEMBREY P,PLUGGE E,HAWKINS T.The Definitive Guide to MongoDB:the noSQL Database for Cloud and Desktop Computing[M].[S.l.]:Apress,2010.

      Geographic Names Management Based on MongoDB

      LIU Ya,DUAN Lijuan,KANG Xiaochen,SUN Zhen,ZHAO Jie

      地名數(shù)據(jù)具有數(shù)據(jù)量大、數(shù)據(jù)結(jié)構(gòu)復(fù)雜、查詢方式多樣等一系列特征。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫在存儲地名信息數(shù)據(jù)時,往往需要預(yù)先定義數(shù)據(jù)表結(jié)構(gòu),難以實現(xiàn)動態(tài)增加多樣化地名屬性信息的功能。此外,復(fù)雜的地理查詢需求也難以得到滿足。本文提出一種基于非關(guān)系型數(shù)據(jù)庫MongoDB的地名數(shù)據(jù)存儲管理方式,可滿足地名存儲的各種需求。同時,屬性查詢、空間鄰近查詢、空間范圍查詢均能得到有效支持。

      MongoDB;地名數(shù)據(jù);地名存儲;地名查詢

      P208

      B

      0494-0911(2014)10-0117-04

      2013-10-08

      國家科技支撐計劃(2012BAH24B 02;2013BAK07B03)

      劉 亞(1977―),男,重慶巫山人,工程師,主要研究方向為信息系統(tǒng)架構(gòu)、商業(yè)智能及數(shù)據(jù)挖掘。

      劉亞,段麗娟,亢曉琛.基于MongoDB的地名信息管理[J].測繪通報,2014(10):117-120.

      10.13474/j.cnki.11-2246.2014.0346

      猜你喜歡
      字段文檔聚類
      圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
      有人一聲不吭向你扔了個文檔
      基于DBSACN聚類算法的XML文檔聚類
      電子測試(2017年15期)2017-12-18 07:19:27
      基于RI碼計算的Word復(fù)制文檔鑒別
      基于改進的遺傳算法的模糊聚類算法
      Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
      一種層次初始的聚類個數(shù)自適應(yīng)的聚類方法研究
      CNMARC304字段和314字段責(zé)任附注方式解析
      無正題名文獻著錄方法評述
      自適應(yīng)確定K-means算法的聚類數(shù):以遙感圖像聚類為例
      自治县| 顺昌县| 施甸县| 宿迁市| 新宾| 潼南县| 霞浦县| 阿鲁科尔沁旗| 南康市| 晴隆县| 梓潼县| 文成县| 林甸县| 鸡东县| 苍溪县| 赞皇县| 东明县| 漳州市| 苗栗县| 县级市| 延川县| 兰溪市| 永川市| 镇江市| 铁岭市| 禹州市| 尖扎县| 瑞金市| 沙湾县| 普洱| 六枝特区| 衡南县| 新安县| 固镇县| 留坝县| 台中市| 潜江市| 乌拉特后旗| 兴文县| 壶关县| 南昌市|