張青青
(作者單位:中國傳媒大學(xué))
?
基于百度地圖API的場(chǎng)強(qiáng)地圖展示
張青青
(作者單位:中國傳媒大學(xué))
摘 要:針對(duì)不同電臺(tái)信號(hào)測(cè)試數(shù)據(jù)多,信息量大、可視化能力差的問題,討論設(shè)計(jì)一個(gè)可視化、精確化、直觀化顯示電臺(tái)信號(hào)在不同測(cè)試點(diǎn)場(chǎng)強(qiáng)大小的地圖。基于百度地圖API,通過JavaScript腳本語言,討論設(shè)計(jì)一個(gè)可視化的地圖展示系統(tǒng),以直觀的形式展示測(cè)試點(diǎn)的坐標(biāo)、場(chǎng)強(qiáng)、頻率和駕車路線等信息。
關(guān)鍵詞:百度地圖API;JavaScript;場(chǎng)強(qiáng)覆蓋
利用JavaScript語言,借助于互聯(lián)網(wǎng)和百度地圖API的平臺(tái)優(yōu)勢(shì),完成了對(duì)測(cè)試點(diǎn)數(shù)據(jù)的地圖展示。從使用的技術(shù)、系統(tǒng)的各個(gè)模塊,以及各模塊的實(shí)現(xiàn)3個(gè)方面討論了系統(tǒng)的實(shí)現(xiàn)過程。
1.1 百度地圖API
百度地圖API包括JavaScript API、Web服務(wù)API、Android SDK等多種開發(fā)工具與服務(wù),提供基本的地圖展示、搜索、定位、逆/地址解析等功能,適用于PC端、移動(dòng)端和服務(wù)器等多種設(shè)備,多種操作系統(tǒng)下的地圖應(yīng)用開發(fā)。
1.2 JavaScript
JavaScript一種直譯式的動(dòng)態(tài)類型、弱類型、基于原型的語言,內(nèi)置支持類型。JavaScript具有如下幾個(gè)特點(diǎn):這是一種解釋性的腳本語言(代碼不進(jìn)行預(yù)編譯);主要用來向HTML頁面添加交互行為;可以直接嵌入HTML頁面,但寫成單獨(dú)的js文件有利于結(jié)構(gòu)和行為的分離;跨平臺(tái)特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺(tái)下運(yùn)行(如Windows、Linux、Mac、ios等)。
2.1 功能要求
在對(duì)測(cè)試點(diǎn)地圖展示功能的設(shè)計(jì)中,應(yīng)該具有如下功能:通過為地圖添加控件,實(shí)現(xiàn)點(diǎn)擊控件查看整體場(chǎng)強(qiáng)、各頻率場(chǎng)強(qiáng)、極值和均值等的分布情況的功能;鼠標(biāo)點(diǎn)擊場(chǎng)強(qiáng)標(biāo)注查看測(cè)試點(diǎn)的詳細(xì)信息,包括坐標(biāo)、頻率和場(chǎng)強(qiáng)值等;可查看駕車路線,鼠標(biāo)拖拽修改起始點(diǎn),實(shí)現(xiàn)導(dǎo)航功能。
2.2 系統(tǒng)體系結(jié)構(gòu)
該地圖展示系統(tǒng)功能的實(shí)現(xiàn),可劃分為3個(gè)模塊來完成:數(shù)據(jù)處理模塊、百度地圖展示模塊、跳轉(zhuǎn)頁面。3大模塊之間的邏輯關(guān)系可以用圖1表示。
2.3 數(shù)據(jù)處理
由無線電監(jiān)測(cè)設(shè)備得到的原始的TXT文件包括測(cè)試點(diǎn)的經(jīng)緯度、海拔、頻率、場(chǎng)強(qiáng)、行車速度等信息。首先,對(duì)所需數(shù)據(jù)的提取。同時(shí),用戶數(shù)據(jù)應(yīng)以數(shù)組的形式存儲(chǔ),結(jié)構(gòu)為[經(jīng)度,緯度,頻率,場(chǎng)強(qiáng)]。
在數(shù)據(jù)的處理過程中,使用PHP語言,將提取之后的數(shù)據(jù)信息存儲(chǔ)在數(shù)組當(dāng)中,并以本地JS文件的形式存儲(chǔ)下來。最終得到的本地?cái)?shù)據(jù)的文件名為C2.js。
在數(shù)據(jù)處理過程中用到了2個(gè)關(guān)鍵函數(shù):explode()和implode()。
explode()函數(shù):將字符串分割為數(shù)組,利用該函數(shù),將原始txt文件的內(nèi)容按列分割成多維數(shù)組的形式,便于提取所需列的內(nèi)容。
implode()函數(shù):將數(shù)組元素連接成字符串。
原始數(shù)據(jù)格式:
處理之后的數(shù)據(jù)格式:
2.4 地圖展示JavaScript設(shè)計(jì)
地圖展示功能是通過JavaScript語言實(shí)現(xiàn)。在各地圖展示模塊的設(shè)計(jì)中,包括3個(gè)子模塊來分別實(shí)現(xiàn)相應(yīng)功能的:整體場(chǎng)強(qiáng)、均值、極值圖;頻率場(chǎng)強(qiáng)圖;駕車路線圖。
在每個(gè)模塊的實(shí)現(xiàn)過程中,用到了以下幾個(gè)重要函數(shù):
(1)PointCollection(points:Array
(2)InfoWindow(content:String|HTMLE lement[,opts:InfoWindowOptions]):創(chuàng)建一個(gè)信息窗實(shí)例,其中content支持HTML內(nèi)容。
(3)DrivingRoute(location:Map|Point|Stri ng[,opts:DrivingRouteOptions]):創(chuàng)建一個(gè)駕車導(dǎo)航實(shí)例,其中l(wèi)ocation表示檢索區(qū)域,在駕車路線圖的設(shè)計(jì)過程中,利用該函數(shù),實(shí)現(xiàn)拖拽鼠標(biāo)修改起始點(diǎn),展現(xiàn)駕車路線。
各子地圖展示功能的設(shè)計(jì)流程見圖2。
圖1 3大模塊之間的邏輯關(guān)系
圖2 各子地圖展示功能的設(shè)計(jì)流程
申請(qǐng)百度地圖API密鑰后,通過在html文件的標(biāo)簽中加入實(shí)現(xiàn)引用的。
在整個(gè)javascript語言對(duì)本地?cái)?shù)據(jù)的讀取和交互,通過在標(biāo)簽中加入實(shí)現(xiàn)的。
地圖、控件、場(chǎng)強(qiáng)圖例能夠展現(xiàn)在地圖上,都需要一個(gè)HTML元素作為容器來承載它們,所以首先需要?jiǎng)?chuàng)建div元素。
2.5 跳轉(zhuǎn)頁面
跳轉(zhuǎn)頁面首先定義不同的單項(xiàng)選擇按鈕radio,為它們綁定不同的子網(wǎng)頁html文件,來實(shí)現(xiàn)按鍵選擇功能。接著定義button按鈕,并為button自定義function()功能實(shí)現(xiàn)頁面的跳轉(zhuǎn),跳轉(zhuǎn)頁面設(shè)計(jì)的流程具體可表示如下:1)設(shè)置網(wǎng)頁圖標(biāo)、背景;2)為radio和button按鈕創(chuàng)建div元素;3)定義radio,綁定相應(yīng)子網(wǎng)頁,實(shí)現(xiàn)選擇功能;4)定義button,自定義function()函數(shù),實(shí)現(xiàn)跳轉(zhuǎn)。
2.6 系統(tǒng)最終效果圖(見圖3~圖5)
這分別是3個(gè)子網(wǎng)頁的最終效果,在整體場(chǎng)強(qiáng)圖中,點(diǎn)擊標(biāo)注點(diǎn),彈出信息窗口,顯示點(diǎn)擊點(diǎn)的場(chǎng)強(qiáng)、頻率、經(jīng)緯度信息;各頻率圖中,通過下拉菜單,選擇我們所需要觀察的頻率場(chǎng)強(qiáng)信息;在駕車路線頁面,可以通過鼠標(biāo)拖拽改變起始點(diǎn),查看相應(yīng)的駕車線路。
圖3 整體場(chǎng)強(qiáng)
圖4 各頻率圖
圖5 駕車路線
在此次基于百度地圖API的場(chǎng)強(qiáng)展示設(shè)計(jì)中,通過百度地圖API和JavaScript,我們完成了地圖展示的功能,實(shí)現(xiàn)了對(duì)于測(cè)試點(diǎn)無線電信號(hào)的可視化查看和管理。
參考文獻(xiàn):
[1]董卓亞.JavaScript API的通信地圖展示[J].電子設(shè)計(jì)工程,2013(28).
[2]殷悅,劉偉,郭東恩.基于百度地圖API房地產(chǎn)展示系統(tǒng)的實(shí)現(xiàn)[J].軟件導(dǎo)刊,2012(11).
[3]Tom Negrino.JavaScript基礎(chǔ)教程[M].北京:人民郵電出版社,2011.
作者簡介:張青青(1990-),女,山東煙臺(tái)市人,碩士,研究方向:數(shù)字廣播電視。