以下內容純屬個人扯淡,僅供參考
注意:本項目使用版本:JavaSript API v3.0
目錄
一、介紹
1、選擇
開發文檔
Web開發
JavaSript API
Lite:針對移動端H5使用場景,代碼體積小,性能更好,但很多功能有裁剪
v2.0:標準版
v3.0:在v2.0上開發,針對一些接口進行了升級,添加了新的功能
GL:基於WebGL渲染,3D地圖開發
1.自定義marker標註圖標
GL版:自動適應圖標大小,只需要設置設置new Size()可視區大小即可
3.0:需要調用setImageSize(),還需要設置圖片可視區域大小
2.移除了一些api
3.也有支持了新的api。GL添加了flyTo等方法
默認展示的是GL版本,它使用WebGL對地圖、覆蓋物渲染(3D顯示相關)。這個版本並非v3.0的兼容升級版,有些功能在GL上還不支持,比如:在GL中還沒有縮放尺,並且沒有開源庫這個模塊、demo示例也沒這麼多。總之:GL版本功能尚未有v3.0那麼完善,它是個較新的版本,主要用於3D地圖開發。點擊JavaScript API v3.0就進入v3.0的開發文檔資源中
2、v3.0可用資源
開發指南
簡單入門
示例Demo
功能
類參考
你代碼裏百度地圖相關的、能寫的都在這裏,就好比如一本字典,通過它你可以知道每個類、方法、屬性的含義。
我們最終目的:就是不斷的屬性API,然後知道它的API能完成什麼樣的功能
開源庫:2.0、3.0纔有。是基於百度地圖的二次開發的一些功能。自定義信息窗口、熱力圖...
如果有些功能沒有在示例demo、開發指南中找到,可以在這裏試試
更新日誌
常見問題
建議:首先,跟着開發指南前幾節(入門指南、創建地圖、在地圖上繪製、事件等)一步步熟悉簡單使用,瞭解大致的js編寫順序;然後,根據自己實際業務需要去開發指南的後幾章、示例Demo、開源庫去找相關的功能實現;最後,再仔細閱讀類參考高度定製化開發
3、準備
具體步驟參考開發指南,目的:拿到密鑰即可
百度地圖開放平臺
控制檯
應用管理-我的應用-創建應用
二、Hello World
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Hello, World</title>
<style type="text/css">
html {
height: 100%
}
body {
height: 100%;
margin: 0;
padding: 0;
}
#container {
height: 100%
}
</style>
<!-- xxxxxxxxxxx就是申請的密鑰 -->
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=xxxxxxxxxxxxxxxxxxxxxxxx">
</script>
</head>
<body>
<div id="container"></div>
<script type="text/javascript">
//創建地圖實例
var map = new BMap.Map("container");
//創建點座標:北京天安門
var point = new BMap.Point(116.404, 39.915);
//初始化地圖,設置中心點座標和地圖縮放級別
map.centerAndZoom(point, 15);
</script>
</body>
</html>
將生成一個鋪滿的地圖,並且"天安門"將置於地圖正中央,地圖級別=15,也叫縮放級別,如果設置爲5,那大概能看到整個中國
三、地圖參數
const mapOption = {
enableMapClick: true, //是否開啓底圖可點功能,默認啓用
minZoom:7, //最小縮放級別
maxZoom:16 //最大縮放級別
};
//創建地圖實例
var map = new BMap.Map("container",mapOption);
//啓用縮放
map.enableScrollWheelZoom(true);
這個地圖是支持鼠標滾輪縮放的,並且設置了最大、最小縮放級別
四、添加控件
五、主題風格
是什麼:可以控制地圖上的元素(山川、河流、陸地、學校)的顏色、樣式
(1)創建主題
開發文檔
開發者工具
個性化地圖編輯器
步驟:創建、編輯、(預覽)、發佈,拿到地圖樣式ID即可(我們可以高度自定義編輯,也可以直接引用地圖模板)
(2)兩種使用方式
在線方式
//在v3.0版不允許該方法傳遞一個空對象(即:{}),另外:V2版方法與舊方法區別見官方說明
map.setMapStyleV2({
styleId: '331da1fd183bf05b65b1eaffe73a9c4c'
});
離線方式
map.setMapStyleV2({
styleJson : styleJsonVal
});
其中styleJsonVal是一個Json格式對象,可以通過在個性編輯器中下載樣式文件拿到具體內容(Json文件),那麼就可以通過請求本地JSON文件的方式拿到,例如:
$.getJSON('js/樣式文件.json', function(res) {
});
當然,也可以直接在代碼中定義一個這樣的常量值,但這樣會導致代碼十分臃腫