关于百度地图API的调用

这段时间的项目上需要用到百度地图标记客户,在网上找了很多,发现都不管用,于是按照官方文档自己写了一个,话不多说,直接上代码!

<div style="width:70%;height:750px;border:#ccc solid 1px;margin-right: 20px;" id="dituContent" class="col-md-8"></div>

先新建一个百度地图的容器。 (当然读者们想要调用百度地图api的话得先在官网申请一个ak哈,这方面不过多赘述)

var map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图
var point = new BMap.Point(116.46,39.92);//定义一个中心点坐标
map.centerAndZoom(point,11);//设定地图的中心点和坐标并将地图显示在地图容器中

这一段想必大家都能看懂,所谓中心点就是,以point(116.46,39.92)点为中心点往外延伸我们的地图,直到填满地图容器,其中11表示的是地图的显示级别,我这里设置的是11级,也就是显示到“镇”级别。再然后:

window.map = map;//将map变量存储在全局

这句就是将上一个方法的map变量变为全局变量,以方便后面方法的调用。接下来,就是设置地图事件了,比如鼠标滚轮放大缩小地图:

map.enableDragging();//启用地图拖拽事件,默认启用(可不写)
map.enableScrollWheelZoom();//启用地图滚轮放大缩小
map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)
map.enableKeyboard();//启用键盘上下左右键移动地图

其实还有更多的enabled,但是我目前的项目只要这么多就够了。接下来呢,我们就可以像地图中添加各种空间了,卫星图的,混合图啊,全景啊,比例尺啊。。。。上代码:

//向地图中添加缩放控件
var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
map.addControl(ctrl_nav);
//向地图中添加缩略图控件
var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1,type:BMAP_NAVIGATION_CONTROL_LARGE});
map.addControl(ctrl_ove);
//向地图中添加比例尺控件
var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
map.addControl(ctrl_sca);
//向地图中添加地图类型
map.addControl(new BMap.MapTypeControl({anchor:BMAP_ANCHOR_TOP_RIGHT,type:BMAP_NAVIGATION_CONTROL_LARGE}));
//设置城市信息
map.setCurrentCity(" 北京市 ");

这边的 “北京市” 就是设置地图的初始显示背景,好了!我们的地图算是已经初始完善了,但是有的小朋友还需要在地图上标记某个地点,接下来就是往地图上添加mark标记,接着上代码:

var map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图
var point = new BMap.Point(116.46,39.92);//定义一个中心点坐标
map.centerAndZoom(point,11);//设定地图的中心点和坐标并将地图显示在地图容器中
var marker = new BMap.Marker(point);//新建标注点
// function addMarker(point,index){
//     var myIcon = new BMap.Icon("image/mark.png", new BMap.Size(23,25),{
//         anchor:new BMap.Size(10,25),          //该注释段为更改标注图标,可以按照自己的喜好更改//         imageOffset: new BMap.Size(0,0 - index * 25)
// });
// var marker = new BMap.Marker(point,{icon:myIcon});
map.addOverlay(marker);//向地图中添加标记点
marker.enableDragging();//允许标注拖拽功能
marker.addEventListener("dragend",function (e) {
    alert("当前位置: " + e.point.lng + "," + e.point.lat) //alert出当前拖拽位置的经纬度
});
var opts = {
    width : 250,       //信息框宽度
    height : 100,      //信息框高度
    title : "企业信息"   //信息框标题
};
var infoWindow = new BMap.InfoWindow(" 信息窗口显示 ",opts); //创建信息窗口对象
map.openInfoWindow(infoWindow, map.getCenter()); //打开信息窗口

这一段就是mark标记的内容了,效果如下:
在这里插入图片描述
OK!上面就是本次分享内容了,最后要记得初始化地图 ~~~~ 最后贴上完整代码!

//创建和初始化地图函数:
function initMap(){
    createMap();//创建地图
    setMapEvent();//设置地图事件
    addMapControl();//向地图添加控件
}

//创建地图函数:
function createMap(){
    var map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图
    var point = new BMap.Point(116.46,39.92);//定义一个中心点坐标
    map.centerAndZoom(point,11);//设定地图的中心点和坐标并将地图显示在地图容器中
    var marker = new BMap.Marker(point);//新建标注点
    // function addMarker(point,index){
    //     var myIcon = new BMap.Icon("image/mark.png", new BMap.Size(23,25),{
    //         anchor:new BMap.Size(10,25),
    //         imageOffset: new BMap.Size(0,0 - index * 25)
    // });
    // var marker = new BMap.Marker(point,{icon:myIcon});
    map.addOverlay(marker);//向地图中添加标记点
    marker.enableDragging();//允许标注拖拽功能
    marker.addEventListener("dragend",function (e) {
        alert("当前位置: " + e.point.lng + "," + e.point.lat) //alert出当前拖拽位置的经纬度
    });
    var opts = {
        width : 250,       //信息框宽度
        height : 100,      //信息框高度
        title : "企业信息"   //信息框标题
    };
    var infoWindow = new BMap.InfoWindow("信息窗口显示",opts); //创建信息窗口对象
    map.openInfoWindow(infoWindow, map.getCenter());                                                     //打开信息窗口
    //进入全景图标位置
    var stCtrl = new BMap.PanoramaControl();
    stCtrl.setOffset(new BMap.Size(20,20));
    map.addControl(stCtrl);
    //浏览器定位
    // var geolocation = new BMap.Geolocation();
    // geolocation.getCurrentPosition(function(r){
    //     if(this.getStatus() == BMAP_STATUS_SUCCESS){
    //         var mk = new BMap.Marker(r.point);
    //         map.addOverlay(mk);
    //         map.panTo(r.point);
    //         alert('您的位置:'+r.point.lng+','+r.point.lat);
    //     }
    //     else {
    //         alert('failed'+this.getStatus());
    //     }
    // });
    //ip定位
    function myFun(result){
        var cityName = result.name;
        map.setCenter(cityName);
        alert("当前定位城市:"+cityName);
    }
    var myCity = new BMap.LocalCity();
    myCity.get(myFun);
    // //定位SDK辅助定位
    // function myFun(result){
    //     var cityName = result.name;
    //     map.setCenter(cityName);
    //     alert("当前定位城市:"+cityName);
    // }
    // var myCity = new BMap.LocalCity();
    // myCity.get(myFun);
    window.map = map;//将map变量存储在全局
}
//载入全景信息
window.onload = function () {
    var panorama = new BMap.Panorama("panorama");
    panorama.setPosition(new BMap.Point(119.972394,31.979135));
    panorama.setPov({heading: -40, pitch: 6});
};
//地图事件设置函数:
function setMapEvent(){
    map.enableDragging();//启用地图拖拽事件,默认启用(可不写)
    map.enableScrollWheelZoom();//启用地图滚轮放大缩小
    map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)
    map.enableKeyboard();//启用键盘上下左右键移动地图
}

//地图控件添加函数:
function addMapControl(){
    //向地图中添加缩放控件
    var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
    map.addControl(ctrl_nav);
    //向地图中添加缩略图控件
    var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1,type:BMAP_NAVIGATION_CONTROL_LARGE});
    map.addControl(ctrl_ove);
    //向地图中添加比例尺控件
    var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
    map.addControl(ctrl_sca);
    //向地图中添加地图类型
    map.addControl(new BMap.MapTypeControl({anchor:BMAP_ANCHOR_TOP_RIGHT,type:BMAP_NAVIGATION_CONTROL_LARGE}));
    //设置城市信息
    map.setCurrentCity("北京市");
}
initMap();//创建和初始化地图

最终效果
在这里插入图片描述
感谢小朋友们评论纠正~ That’s it ! Wish everyone a nice day~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值