创建地图
< style>
body, html,#map { width : 100%; height : 100%; overflow : hidden; margin : 0; font-family : "微软雅黑" ; }
</ style>
< div id = " map" > </ div>
< script type = " text/javascript" src = " http://api.map.baidu.com/api?v=2.0&ak=您的密钥" > </ script>
< script>
map = new BMap. Map ( "map" ) ;
map. centerAndZoom ( new BMap. Point ( 116.404 , 39.915 ) , 11 ) ;
map. setCurrentCity ( "北京" ) ;
</ script>
基本配置
map. enableScrollWheelZoom ( true ) ;
map. disableScrollWheelZoom ( true ) ;
map. enableDragging ( ) ;
map. disableDragging ( ) ;
map. enableDoubleClickZoom ( ) ;
map. disableDoubleClickZoom ( ) ;
map. setMapStyle ( { style: 'midnight' } ) ;
map. setDefaultCursor ( "url('http://localhost/images/pointer.cur') 3 6, default" ) ;
添加控件
map. addControl ( new BMap. MapTypeControl ( ) ) ;
创建标记
var myIcon = new BMap. Icon ( "mapCircle.png" , new BMap. Size ( 10 , 10 ) ) ;
var point = new BMap. Point ( 116.404 , 39.915 ) ;
var marker = new BMap. Marker ( point, {
offset: new BMap. Size ( 0 , 0 ) ,
icon: myIcon,
} ) ;
var label = new BMap. Label ( '测试文本' , {
offset: new BMap. Size ( 10 , - 10 ) ,
} ) ;
marker. setLabel ( label) ;
marker. setTop ( 'true' ) ;
map. addOverlay ( marker) ;
创建折线
var polyline = new BMap. Polyline ( [ new BMap. Point ( 116.404 , 39.915 ) , new BMap. Point ( 816.104 , 88.675 ) ] , {
strokeColor: "#fd8044" ,
strokeWeight: 2 ,
strokeOpacity: .9
} ) ;
map. addOverlay ( polyline) ;
创建文本标记
var opts = {
position : new BMap. Point ( 116.404 , 39.915 ) ,
offset : new BMap. Size ( 10 , - 10 )
} ;
var label = new BMap. Label ( '测试文本' , opts) ;
label = label. setZIndex ( ) ;
label. setStyle ( {
color : "#666" ,
fontSize : "12px" ,
height : "20px" ,
padding : "0 5px" ,
lineHeight : "20px" ,
fontFamily: "微软雅黑" ,
borderColor: "#999" ,
borderRadius: "2px"
} ) ;
label. setContent ( '新文本' ) ;
map. addOverlay ( label) ;
创建自定义覆盖物
var custom_point = new BMap. Point ( 116.407845 , 39.914101 ) ;
function ComplexCustomOverlay ( point) {
this . point = point;
}
ComplexCustomOverlay. prototype = new BMap. Overlay ( ) ;
ComplexCustomOverlay. prototype. initialize = function ( map) {
this . map = map;
var div = this . div = document. createElement ( 'div' ) ;
div. style. cssText = 'position: absolute; width:300px; height:150px; padding: 24px; background-color: #fff; border-radius: 5px; box-shadow: 0 1px 9px -3px #000;' ;
div. innerHTML = "hello world" ;
map. getPanes ( ) . labelPane. appendChild ( div) ;
return div;
} ;
ComplexCustomOverlay. prototype. draw = function ( ) {
var pixel = map. pointToOverlayPixel ( this . point) ;
this . div. style. left = pixel. x + "px" ;
this . div. style. top = pixel. y + "px" ;
} ;
ComplexCustomOverlay. prototype. show = function ( ) {
if ( this . div) {
this . div. style. display = "block" ;
}
} ;
ComplexCustomOverlay. prototype. hide = function ( ) {
if ( this . div) {
this . div. style. display = "none" ;
}
}
ComplexCustomOverlay. prototype. toggle = function ( ) {
if ( this . div) {
if ( this . div. style. display == "" ) {
this . hide ( ) ;
} else {
this . show ( ) ;
}
}
}
var myCompOverlay = new ComplexCustomOverlay ( custom_point) ;
map. addOverlay ( myCompOverlay) ;
设置一组点的最佳视角
var points = [
new BMap. Point ( 111.407845 , 39.914101 ) ,
new BMap. Point ( 112.407845 , 39.914101 ) ,
new BMap. Point ( 113.407845 , 39.914101 ) ,
] ;
map. setViewport ( points) ;
点击地图获取坐标
map. addEventListener ( "click" , function ( e) {
e. domEvent. stopPropagation ( ) ;
console. log ( e. point. lng + ',' + e. point. lat) ;
} ) ;
点击地图创建点
map. addEventListener ( "click" , function ( e) {
var myIcon = new BMap. Icon ( "mapCircle.png" , new BMap. Size ( 10 , 10 ) ) ;
var point = new BMap. Point ( e. point. lng, e. point. lat) ;
var marker = new BMap. Marker ( point, {
offset: new BMap. Size ( 0 , 0 ) ,
icon: myIcon,
} ) ;
marker. setTop ( 'true' ) ;
map. addOverlay ( marker) ;
} ) ;
设置地图类型
< select id = " typeSelect" >
< option value = " BMAP_NORMAL_MAP" > 地图模式</ option>
< option value = " BMAP_HYBRID_MAP" > 卫星模式</ option>
</ select>
< script>
typeSelect. onchange = function ( event) {
let value = this . value;
map. setMapType ( window[ value] ) ;
} ;
</ script>