web百度地圖離線開發


         公司現在做的一個項目本來用的是google離線地圖,但是發現谷歌的地圖數據很久沒更新數據了,中國的城市發展這么快,好多地方地圖和現實都對不上了。 發現百度地圖數據更新挺快的(呵呵,畢竟是國產的嗎),最后公司決定要把google地圖換成百度地圖。 就把此重任交個了本小俠,我上網一查,百度地圖根本就不提供離線地圖包。小俠我頓時覺得掉進坑里了。 哎,誰讓本小俠是打工的呢,命苦啊。只能頂頭硬上了。

 

         於是,本小俠就拼命的百度啊,翻牆google“百度地圖離線包”,搜了一個星期終於有點眉目了。但是發現網上的百度離線地圖有兩個致命缺陷:

         1,不支持IE;

         2,地圖的功能很少,不支持聚合,不支持畫多邊形等等。

這顯然不符合公司的要求,於是本小俠決定經知己研究一個全新的,經過我三個月的研究,終於搞定了百度離線地圖。啥都不說,先看看本小俠的戰果吧:

 

地圖純離線:


 

 

 

支持IE7,8,9,10,11(已測),更高版本還沒測試;fireFix和chrome等主流瀏覽器。

支持畫圓,畫多邊形等:

 

 

支持多點聚合:

 

 

 

呵呵,效果還不錯吧!

 

下面說下本小俠的開發思路:

         既然百度提供在線的地圖,我們想要的是在線的,那么我們就要想辦法把在線的代碼改成離線的代碼。就這么簡單!

 

1.首先獲取百度 JavaScript API:

  首先用瀏覽器打開 http://api.map.baidu.com/api?v=1.3 如下圖所示:

 

其中http://api.map.baidu.com/getscript?v=1.3&ak=&services=&t=20150527115231個鏈接就是我們要找的API文件,

同樣在瀏覽器中打開它,並另存為諸如“apiv1.3.min.js”

 

 

還有百度地圖必須的一些控件,光標,logo之類的圖片也下載下來

 

 

2.修改“apiv1.3.min.js”把里面的地圖控件的圖片,光標,logo等鏈接替換成本地的。

 

3.下載依賴模塊API文件(非常關鍵)

此文件必不可少,如果缺少某個依賴模塊,則無法使用相應的API。這個請求文件的原理是根據你在自己頁面中使用的API來向官網請求相應的依賴模塊API,參數的字符串格式是根據所使用依賴模塊的順序生成“模塊名”以“,”分隔。

<script type="text/javascript">
var map = new BMap.Map("container",{mapType: BMAP_NORMAL_MAP});
var point = new BMap.Point(116.404, 39.915);    // 創建點坐標
map.centerAndZoom(point,5);                     // 初始化地圖,設置中心點坐標和地圖級別。
 
//map.addControl(new BMap.MapTypeControl());
map.addControl(new BMap.NavigationControl());
map.enableScrollWheelZoom();                  // 啟用滾輪放大縮小。
map.enableKeyboard();                         // 啟用鍵盤操作。  
//map.setCurrentCity("北京");          // 設置地圖顯示的城市 此項是必須設置的
</script>

 

所請求的依賴庫參數是http://api.map.baidu.com/getmodules?v=1.3&mod=map,oppc,tile,control

 

為了省去麻煩,Demo中的依賴庫命名為modules(可以根據自己需要修改),在Demo文件/js路徑下,里面已有map,oppc,tile,control,menu,marker,infowindow這幾個模塊

 

可以根據自己的需要從這個地址得到:http://api.map.baidu.com/getmodules?v=1.3&mod=模塊名,然后將內容添加到modules文件中。

 

 

 

4,Demo文件中的modules文件中在map模塊部分已經去掉了百度版權信息,

 

由於本人時間有限,代碼資源包和更詳盡的信息請訪問QQ空間: 2926963574查看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM