• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    LBS中基于SVG的地圖組織與應用

    2018-12-19 12:44:34陳少英
    現(xiàn)代計算機 2018年32期
    關鍵詞:解析器圖層設置

    陳少英

    (廈門海洋職業(yè)技術學院信息技術系,廈門 361012)

    1 概述

    1.1 LLBBSS業(yè)務

    移動位置服務(Location-Based Services,LBS),又名定位服務,使用移動衛(wèi)星網(wǎng)絡和衛(wèi)星定位的技術結合獲得移動方的位置信息,由移動通信網(wǎng)提供給用戶及相關通信系統(tǒng),用以實現(xiàn)各種與定位、位置相關的服務。涉及到基于位置提供的信息服務都屬于移動位置服務,例如查詢某個目的地的線路、某個地方的天氣,這些是廣義的屬性。就LBS業(yè)務本身來說,其通過移動通信網(wǎng)獲取用戶的位置,借助地理信息系統(tǒng)(GIS)提供的各類服務,實現(xiàn)與終端擁有者所在位置緊密相關的增值服務。GIS是LBS中的關鍵核心技術,因為LBS中的關鍵和核心是位置信息和地理信息,而GIS負責位置信息、基礎地理信息的存儲以及數(shù)據(jù)、空間分析,涉及到地圖展示、路徑搜索、地點定位等,這正是LBS中用戶需要的有價值的信息。

    LBS會形成一個巨大的產(chǎn)業(yè)鏈,其中包括定位技術提供商、電信運營商、基礎空間數(shù)據(jù)、服務提供商、內(nèi)容提供商和移動終端制造商等。手機做為重要的一種移動終端,擁有位置信息采集和用戶交互的功能。

    1.2 SSVVGG技術

    SVG,即可縮放矢量圖(Scalable Vector Graphics),它采用XML(Extensible Markup Language)來描述二維圖形。

    SVG結合了文字、圖形和圖像的有機統(tǒng)一,它采用標記語言的形式,對矢量圖形、圖像進行變換、組合、樣式設置等操作。作為針對互聯(lián)網(wǎng)應用而制定的圖像格式,從圖像本身的表現(xiàn)來講SVG具有圖像品質較高、文件較小、色彩描述精確、視覺顯示效果豐富、可搜索、可交互等優(yōu)勢。

    LBS中基于SVG技術的方案相比于先前的解決方案具有一些新的特點:

    (1)SVG豐富的圖形對象,可以很好地表現(xiàn)系統(tǒng)的空間信息,甚至細節(jié)。

    (2)SVG豐富的消息觸發(fā)以及事件響應函數(shù),能夠快速獲取用戶信息,可以實現(xiàn)系統(tǒng)的交互性。

    (3)SVG基于XML格式的特性,使得它除了本身內(nèi)置的屬性外,還能針對屬性進行任意擴展,以實現(xiàn)自定義的功能,具有靈活性。

    (4)支持圖形超鏈接功能。

    2 系統(tǒng)架構

    該系統(tǒng)采用C/S模式,客戶端主要用來顯示地圖,包括操作界面、SVG解析模塊和功能模塊。服務器端存儲地圖的SVG文件,負責接收響應客戶端發(fā)出的請求。客戶端發(fā)送請求信息(例如查詢)到服務器端,服務器端進行響應,將相應SVG文件返回給客戶端,客戶端解析SVG文件,將生成的圖像顯示在手機屏幕上。用戶可以根據(jù)需要,在手機屏幕上對矢量地圖進行平移,以及適當?shù)目s放。

    系統(tǒng)整體結構如圖1所示。

    圖1 系統(tǒng)結構示意圖

    3 系統(tǒng)實現(xiàn)

    3.1 地圖引擎

    地圖引擎是開發(fā)GIS地圖應用的平臺基礎。系統(tǒng)采用J2EE布局,地圖圖形數(shù)據(jù)和交互使用SVG做為載體,數(shù)據(jù)交換手段基于XML/XSL,空間數(shù)據(jù)平臺使用Oracle Spatial,界面操縱能力通過ECMAScript腳本語言來實現(xiàn)。

    本系統(tǒng)由如下部分組成:

    ●SVG地圖:通過Adobe SVG Viewer實現(xiàn)SVG地圖展示城市地圖、道路、地名注記等內(nèi)容,并為地圖API提供數(shù)據(jù)容器;

    ●地圖API:提供了公交換乘查詢、地名及位置查詢、公交線路查詢、周邊地物查詢等API,供應用開發(fā)者使用;

    ●空間數(shù)據(jù)解析器:根據(jù)前臺請求,從Oracle Spa?tial數(shù)據(jù)庫中讀取空間數(shù)據(jù),并轉換成為SVG圖形元素,組合目標SVG;

    ●數(shù)據(jù)緩存器:緩存用戶的調(diào)用請求產(chǎn)生的結果數(shù)據(jù),根據(jù)用戶請求從緩存中讀取數(shù)據(jù),用于提高服務器性能。

    地圖引擎拓撲圖如圖2所示。

    圖2 地圖引擎拓撲示意圖

    3.2 系統(tǒng)各功能模塊

    以下介紹系統(tǒng)的各個功能模塊劃分:

    ●SVG元素庫:使用對象數(shù)組格式,生成數(shù)據(jù)庫表中的對應SVG元素。首先需要調(diào)用方傳輸數(shù)據(jù)庫的表名和對應的命名函數(shù),SVG元素庫依據(jù)表名連接Oracle Spatial數(shù)據(jù)庫,參照命名函數(shù)中傳入的數(shù)據(jù)類型生成所需要的文本、點、線、面等對象;接著向解析器查詢記錄對應的顯示風格,并設置到對象中,最后向調(diào)用方返回的是元素對象數(shù)組。

    ●SXW解析器模塊:SXW解析器設計用于實現(xiàn)對Super Map地圖編輯軟件產(chǎn)生的SXW文件的解析。SuperMap Deskpro生成信息空間文件,SXW解析器負責讀取其中的地圖地理結構、地圖展示風格等內(nèi)容,讀取解析對應的SXW文件,然后在內(nèi)存中生成XML樹,并提供外部所需的圖層元素值。

    ●緩沖器模塊:緩存用戶調(diào)用請求產(chǎn)生的結果數(shù)據(jù),并根據(jù)用戶請求從緩存中直接讀取數(shù)據(jù)。用于提高服務器性能。在服務器啟動時,將載入這個類,并在這個類中將所有的SVG文件都讀出,并且存入Hash?Map。

    ●更新器模塊:用于更新SVG數(shù)據(jù),作為入口,調(diào)度各個模塊,重新生成各主要城市的SVG地圖文件,將數(shù)據(jù)更新到數(shù)據(jù)庫,并由監(jiān)聽器監(jiān)視數(shù)據(jù)庫,并將它更新到HashMap中。

    ●分發(fā)器模塊:負責接收響應處理前端的請求。相當于系統(tǒng)中的交通警察,它接收用戶請求并進行解析,并將請求分發(fā)到相對應的對象進行處理。

    ●SVG組裝器模塊:用于根據(jù)傳入的圖元分塊坐標和其他相關配置信息,訪問Oracle Spatial數(shù)據(jù)庫,并生成分塊對應的SVG文件,以String方式返回,供調(diào)用者進行處理。

    ●地圖展示模塊:WingMap類在地圖裝載時進行初始化,用于操縱展示的SVG地圖。提供了眾多的函數(shù),用于滿足地圖移動、放大、縮小、測距等常用地圖功能,并提供了用于向地圖中寫入查詢結果的接口。

    系統(tǒng)工作時序如圖3所示。

    圖3 系統(tǒng)工作時序圖

    3.3 更新器模塊實現(xiàn)

    更新器用于更新SVG數(shù)據(jù),作為入口,調(diào)度各個模塊,將數(shù)據(jù)更新到數(shù)據(jù)庫,并由監(jiān)聽器監(jiān)視數(shù)據(jù)庫,并將它更新到HashMap中。更新器結構如圖4所示。

    圖4 更新器結構圖

    SVG組裝器拆分MBR,并根據(jù)MBR拆分結果進行循環(huán)調(diào)用:

    (1)SVG組裝器新建SXW解析器對象;

    (2)SXW解析器返回新建對象;

    (3)SVG組裝器向元素庫發(fā)送圖層、MBR、SXW解析器對象,元素庫返回相應的SVG片段;

    (4)元素庫向SXW解析器發(fā)送請求,要求返回圖層信息;

    (5)SXW解析器返回圖層信息;

    (6)元素庫向Spatial要求調(diào)用存儲過程,傳入圖層名、MBR、表名稱等信息,要求返回結果記錄集;

    (7)存儲過程返回結果記錄集;

    (8)元素庫向SXW解析器發(fā)送請求,要求返回圖層風格;

    (9)SXW解析器返回圖層風格;

    (10)元素庫組裝并返回SVG片段.

    SVG組裝器壓縮SVG片段,并存入到數(shù)據(jù)庫表中,繼續(xù)第1步,直至循環(huán)結束。

    3.4 SSVVGG組裝器模塊實現(xiàn)

    SVG生成模塊用于根據(jù)傳入的圖元分塊坐標和其他相關配置信息,訪問Oracle Spatial數(shù)據(jù)庫,并生成分塊對應的SVG文件,以String方式返回,供調(diào)用者進行處理。其程序流程是先新建SVG圖元工廠,接著設置分塊信息,然后設置SXW對象,最后調(diào)用生成SVG方法。

    SVG組裝器必須完成如下的工作:

    (1)響應解析請求的內(nèi)容,生成SVG文件框架,獲得地圖名稱;

    (2)根據(jù)地圖名稱,創(chuàng)建格式解析器對象;

    (3)從格式解析器獲取圖層信息;

    (4)從SVG元素庫中,依照圖層信息,取得對應的SVG元素數(shù)組,經(jīng)由元素數(shù)組生成SVG片段,通過拼裝,形成SVG文件;

    (5)返回SVG字符串。

    生成SVG:

    使用createSVG函數(shù)要求m_mapConfig返回滿足比例尺條件的SXW圖層列表,并循環(huán)SXW圖層列表:

    (1)SXW圖層名稱 sSXWLayer,要求m_mapConfig返回對應的最小比例尺和最大比例尺;

    中國的社會扶貧是具有中國特色的廣義的社會扶貧概念。自20世紀90年代中期開始,社會扶貧一直是中國扶貧的重要組成部分。社會扶貧大體可劃分為三種主要類型:第一種是政府組織和協(xié)調(diào)的帶有再分配性質的社會扶貧,包括各級機關事業(yè)單位開展的定點扶貧、東西協(xié)作扶貧以及軍隊武警部隊扶貧;第二種是由企業(yè)為主體基于社會責任、參與企業(yè)與貧困地區(qū)互利的企業(yè)扶貧;第三種是由非營利社會組織和個人為主純粹的扶貧活動。由這三種社會扶貧方式構成的中國社會扶貧,在過去20年通過動員社會和所在組織的資源、組織和實施扶貧項目、開展扶貧創(chuàng)新等形式,為中國減貧作出了重要的貢獻。

    (2)如果滿足條件:最小比例尺

    (3)根據(jù)sSXWLayer,查表得到圖層對應的Spatial表名sTable;

    (4)設置條件:sTable,dLeft,dBottom,dTop,dRight,sProvince,sCity,sLayer,dScale,調(diào)用存儲過程檢索出Spatial表中的對應記錄,生成結果記錄集;

    (5)根據(jù)Spatial表名,調(diào)用對應的函數(shù),傳入?yún)?shù):sSXWLayer;

    (6)要求SVG類返回SVG圖層;

    (7)拼接SVG圖層數(shù)組,設置SVG文件的Wing屬性,返回SVG文件。

    最后輸出SVG文件,String類型,格式如下:

    讀取POI:

    使用readPOI函數(shù),輸入SXW圖層名稱,進行如下處理:

    (1)根據(jù)m_dScale,計算顯示比例單位數(shù)值dUnit(double類型,用來設置本比例尺下1單位的實際大?。?;

    (2)向m_mapConfig查詢sSXWLayer對應的顯示風格:字體、字體大小、字體顏色;

    (3)根據(jù)顯示風格,組裝SVG頭,設置缺省屬性:image大小、字體、字體大小、字體顏色;

    (4)循環(huán)結果記錄集:

    ①讀取POI類型;

    ②查表得到POI類型對應的顯示圖片路徑,設置元素;

    ③讀取POI名稱,設置元素。

    (5)輸出SVG圖層。

    讀取水系、綠地、邊界:

    分別使用 readWater、readGreenLawn、readCounty函數(shù),輸入SXW圖層名稱,并進行如下處理:

    (1)根據(jù)m_dScale,計算顯示比例單位數(shù)值dUnit;

    (2)向m_mapConfig查詢sSXWLayer對應的顯示風格:填充色、邊線色;

    (3)根據(jù)顯示風格,組裝SVG頭,設置缺省屬性:邊線色、填充色、邊寬;

    (4)循環(huán)結果記錄集:

    ①讀取多邊形數(shù)據(jù),設置元素、邊寬(=0);

    ②讀取路徑數(shù)據(jù),設置元素。

    (5)輸出圖層;

    (6)輸出圖層。

    讀取橋系、道路、鐵路:

    分別使用函數(shù) readBridge、readRoad、readRailway輸入SXW圖層名稱,并進行如下處理:

    (1)根據(jù)m_dScale,計算顯示比例單位數(shù)值dUnit;

    (2)向m_mapConfig查詢sSXWLayer對應的顯示風格:邊寬、字體、字體顏色、字體大??;

    (3)根據(jù)顯示風格,組裝背景SVG頭,設置缺省屬性:邊線色、邊寬;

    (4)根據(jù)顯示風格,組裝前景SVG頭,設置缺省屬性:邊線色、虛線填充格式、邊寬;

    (5)根據(jù)顯示風格,組裝文字SVG頭,設置缺省屬性:字體、字體顏色、字體大小、路徑跟隨屬性;

    (6)循環(huán)結果記錄集:

    ①讀取路徑數(shù)據(jù),設置背景元素;

    ②設置前景元素,如果具備名字,則為元素命名;

    ③如果具備名字,則設置元素,設置為路徑跟隨。

    (7)輸出背景圖層;

    (8)輸出前景圖層;

    (9)輸出文字圖層。

    4 結語

    SVG作為基于XML純文本描述、為互聯(lián)網(wǎng)應用而設計的圖像格式,擁有文件小、圖像質量高、色彩描述精確、視覺表現(xiàn)豐富、可搜索、支持交互這些特點,使得非常適宜成為Web地圖的載體。本文通過研究SVG技術在LBS中的應用,解決了SVG的傳輸數(shù)據(jù)解析顯示、更新文件保存等問題,在手機上實現(xiàn)了對矢量地圖的顯示功能、平移和縮放功能、定位查詢功能,為移動終端基于SVG的應用提供了一種解決方案,具有較好的借鑒作用。

    猜你喜歡
    解析器圖層設置
    基于多解析器的域名隱私保護機制
    中隊崗位該如何設置
    少先隊活動(2021年4期)2021-07-23 01:46:22
    基于Wireshark的列控中心以太網(wǎng)通信協(xié)議解析器的研究與實現(xiàn)
    如何防御DNS陷阱?常用3種DNS欺騙手法
    一種基于無關DNS的通信隱私保護技術研究
    電子世界(2018年14期)2018-04-15 16:14:25
    巧用混合圖層 制作抽象動感森林
    圖層法在地理區(qū)域圖讀圖中的應用
    地理教學(2015年18期)2016-01-06 12:00:38
    本刊欄目設置說明
    中俄臨床醫(yī)學專業(yè)課程設置的比較與思考
    淺析“遞層優(yōu)化法”在礦井制圖中的應用
    河南科技(2014年6期)2014-04-04 08:00:42
    高邑县| 宜川县| 永康市| 贵阳市| 宁津县| 鲁甸县| 四会市| 喀什市| 甘德县| 长岭县| 修水县| 资源县| 瑞丽市| 宜城市| 桂平市| 乳源| 凉城县| 洪江市| 万荣县| 青海省| 贞丰县| 微博| 班戈县| 抚州市| 十堰市| 吴江市| 原阳县| 丽江市| 东乡县| 思茅市| 通州区| 永德县| 前郭尔| 麻江县| 杭锦后旗| 延长县| 沂南县| 旬邑县| 通渭县| 祁东县| 汶上县|