百度地圖
[ http://lbsyun.baidu.com/index.php?title=jspopular/guide/custom-markers
]()
百度坐標拾取器
[http://api.map.baidu.com/lbsapi/getpoint/index.html]()
## 1.引入
```
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=yVvstVk5vFkyz8suzQ2fikPrsiC4NiOh"></script>
```
## 2.css
```
<style>
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
}
#container {
height: 100%;
}
</style>
```
## 3.html
```
<div id="container"></div>
```
# JS
## 實例化一個地圖
```
var map = new BMap.Map("container");
```
## 設置中心點
```
var point = new BMap.Point(114.380881, 30.6949);
```
## 初始化,設置中心點及展示級別
```
map.centerAndZoom(point, 15);
```
## 開啟鼠標滾輪縮放
```
map.enableScrollWheelZoom(true);
```
## 平移縮放
```
map.addControl(new BMap.NavigationControl());
```
## 坐標尺
```
map.addControl(new BMap.ScaleControl());
```
## 可折疊的縮略地圖
```
map.addControl(new BMap.OverviewMapControl());
```
## 選擇地圖類型
```
map.addControl(new BMap.MapTypeControl());
```
## 僅當設置城市信息時,MapTypeControl的切換功能才能可用
```
map.setCurrentCity("北京");
```
## 偏移
```
var opts = { offset: new BMap.Size(150, 5) }
map.addControl(new BMap.ScaleControl(opts));
```
## 創建標注
```
var marker = new BMap.Marker(point);
map.addOverlay(marker);
marker.addEventListener("click", function () {
alert("您點擊了標注");
});
```
## 兩點間折線
```
var polyline = new BMap.Polyline([
new BMap.Point(116.399, 39.910),
new BMap.Point(116.405, 39.920)
],
{ strokeColor: "blue", strokeWeight: 6, strokeOpacity: 0.5 }
);
map.addOverlay(polyline);
```
## 定義自定義覆蓋物的構造函數
```
function SquareOverlay(center, length, color) {
this._center = center;
this._length = length;
this._color = color;
}
// 繼承API的BMap.Overlay
SquareOverlay.prototype = new BMap.Overlay();
```
## 實現初始化方法
```
SquareOverlay.prototype.initialize = function (map) {
// 保存map對象實例
this._map = map;
// 創建div元素,作為自定義覆蓋物的容器
var div = document.createElement("div");
div.style.position = "absolute";
// 可以根據參數設置元素外觀
div.style.width = this._length + "px";
div.style.height = this._length + "px";
div.style.background = this._color;
// 將div添加到覆蓋物容器中
map.getPanes().markerPane.appendChild(div);
// 保存div實例
this._div = div;
// 需要將div元素作為方法的返回值,當調用該覆蓋物的show、
// hide方法,或者對覆蓋物進行移除時,API都將操作此元素。
return div;
}
```
## 實現繪制方法
```
SquareOverlay.prototype.draw = function () {
// 根據地理坐標轉換為像素坐標,并設置給容器
var position = this._map.pointToOverlayPixel(this._center);
this._div.style.left = position.x - this._length / 2 + "px";
this._div.style.top = position.y - this._length / 2 + "px";
}
```
## 添加自定義覆蓋物
```
var mySquare = new SquareOverlay(map.getCenter(), 100, "red");
map.addOverlay(mySquare);
```
- 1.JS的基礎知識
- (1)調試
- (2)變量
- (3)數據類型
- 數據類型之間的轉換
- (4)全局變量和局部變量
- (5)運算符和表達式
- (6)數組
- 2.控制語句DOM,BOM,事件
- (1)控制語句
- (2)DOM的基礎
- 節點
- 改變樣式
- DOM事件
- 3.函數
- (1)聲明函數
- (2)構造函數
- (3)函數的參數
- (4)函數的傳參
- (5)改變this
- (6)重載
- (7)回調函數
- 4.數組
- (1)創建數組
- (2)增刪改查
- (3)字符串與數組的轉換
- 5.正則
- (1)創建正則
- (2)字符串中支持正則
- (3)語法
- 最核心的元字符
- 6.ajax
- (1)原生ajax
- (2)http,get,post
- (3)跨域
- (4)jQuery-ajax
- (5)axios
- 7.面向對象
- (1)原型
- (2)原型鏈,繼承
- (3)多態
- 8.es6小結
- 9.js+canvas實現驗證碼
- 10.js的作用域
- 11.閉包
- 實例
- toggle
- 圖片切換
- swiper
- 遮罩顏色漸變
- 表格添加
- 瀑布流
- ajax數據請求渲染
- 百度地圖