原創 全城公交標註系統 (2)

來源:互聯網
上載者:User

上一篇:全城公交標註系統

 

上一篇提到了如何綜合利用mapabc的資料和baidu map地圖來實現全城公交標註功能。實踐中發現,十分複雜。於是用了一個簡單得多的方法實現了我的目標。首先看看:

 

實現方法分為三個階段,介紹如下:

 

(1)準備資料。首先利用js指令碼從mapabc.com抓取全北京的公交線路資料和公交站資料。得到資料格式如下:

var bus_lines = new Array(<br />[110100011384,"1 路(靛廠新村--四惠)","116.280793,39.88953,116.285411,.....(沿途公交點,略)"]<br />);</p><p>var bus_stations = new Array(<br />[110100011384,"靛廠新村",116.280793,39.88953],<br />[110100011384,"靛廠村",116.289163,39.889537],<br />[110100011384,"蓮寶路口東",116.296119,39.88955],<br />[110100011384,"馬官營西",116.302096,39.889698],<br />[110100011384,"馬官營",116.306156,39.889928],<br />[110100011384,"六裡橋北",116.310587,39.88786],<br />[110100011384,"公主墳南",116.310551,39.90272],<br />[110100011384,"公主墳東",116.312017,39.906172],<br />[110100011384,"軍事博物館",116.325902,39.907398]<br />);

 

(2)將這些資料轉化成js可以識別的資料結構,前後使用了兩種方式:

    第一種方式:將這些資料格式化成一個js數組,另存新檔data.js,使用時用<script src="data.js" />匯入即可直接使用。該方法實現簡單,並且無需伺服器端得代碼參與,但是缺點卻也十分明顯:整個data.js佔用了11MB的空間,下載速度極慢。利用該方法實現的系統:http://xzaoshu.com/raywill/solu/

    第二種方法:將這些資料格式化成MYSQL,然後利用phpMyAdmin匯入到資料庫中。該方法的優點是資料載入速度快,使用者等待時間較短。缺點也不少,首先需要編寫伺服器端操作資料庫的代碼(php+mysql),然後還需要編寫用戶端的資料擷取代碼(jquery+json),並且每次查詢都需要和伺服器互動,每次查詢地圖都需要等待伺服器結果。利用該方法實現的系統:http://xzaoshu.com/raywill/solu2/client/

 

最後發布版本我們選擇了方案2.因為方案一每次下載data.js都需要消耗2~4分鐘,實在太長。即使嘗試了js壓縮,效果也還是不理想。如果選擇方案一,所有運算都需要編寫js代碼,包括定位最近的公交,尋找對應公交線路等;選擇方案2可以充分利用sql語句來進行查詢,十分方便。

 

 

(3)編寫用戶端js代碼,將資料顯示在地圖上。這裡因為mapabc.com和百度地圖的座標不一致(貌似所有地圖網站的座標都是各自為政,唉,真是要不得!),所以放棄了使用百度地圖,而是直接使用mapabc.com的地圖。速度還不錯~

 

 

有興趣的可以follow我:http://weibo.com/raywill2

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.