百度地图 map核心类 自定义控件 地图样式(setMapStyle) 获取全景示例(getPanorama())

代码在此
 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>v3.0版本 map核心类 自定义控件 地图样式(setMapStyle) 获取全景示例(getPanorama())</title>
    <style>
        html{height:100%}    
        body{height:100%;margin:0px;padding:0px}    
        #container{height:80%} 
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=你的秘钥"></script>
</head>
<body>
    <div id="container"></div> 
    <div>
        <button id="bound" >返回地图可视区域</button>
        <button id="center" >中心点</button>
        <button id="nanhua" >南华大学</button>
        <div id="adds">
            <button name="btns" id="add" >+</button>
            <span>视图等级</span>
            <button name="btns" id="del" >-</button>
        </div>
        
    </div>
    <script>
        window.onload = function(){
        // 创建地图实例 
        var map = new BMap.Map("container");
        // 创建点坐标 
        var point = new BMap.Point(112.5527201488,26.9273408603);   //衡阳县第六中学 
        // 设初始化地图 
        // 若调用高清底图(针对移动端开发)时,zoom可赋值范围为3-18级
        // 如果center类型为字符串时,比如“北京”,zoom可以忽略,地图将自动根据center适配最佳zoom级别
        map.centerAndZoom(point, 15);// 初始化地图,设置中心点坐标和地图级别 3-19
         //设置地图类型
        //BMAP_NORMAL_MAP    此地图类型展示普通街道视图
        //BMAP_SATELLITE_MAP  此地图类型展示卫星视图
        //BMAP_HYBRID_MAP 此地图类型展示卫星和路网的混合视图
        //map.setMapType();  //格式不清楚 ??
        map.addControl(new BMap.MapTypeControl({ mapTypes: [BMAP_SATELLITE_MAP] }));// 地图类型
        //map.addControl(new BMap.MapTypeControl());// 地图类型

        map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
        map.enableDragging();  //启用地图拖拽,默认启用
        //map.disableDragging(); //禁用地图拖拽

        map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
        //map.disableScrollWheelZoom(); //禁用滚轮放大缩小

        map.enableDoubleClickZoom(); //启用双击放大,默认启用
        //map.disableDoubleClickZoom(); //禁用双击放大

        map.enableKeyboard(); //启用键盘操作,默认禁用。 
        //上、下、左、右键可连续移动地图。同时按下其中两个键可使地图进行对角移动。
        //PgUp、PgDn、Home和End键会使地图平移其1/2的大小。+、-键会使地图放大或缩小一级
        map.disableKeyboard();//禁用键盘操作

        map.enableInertialDragging(); //启用地图惯性拖拽,默认禁用
        //map.disableInertialDragging(); //禁用地图惯性拖拽

        map.enableContinuousZoom(); //启用连续缩放效果,默认禁用
        //map.disableContinuousZoom(); //禁用连续缩放效果

        map.enablePinchToZoom(); //启用双指操作缩放,默认启用
        //map.disablePinchToZoom(); //禁用双指操作缩放

        map.enableAutoResize(); //启用自动适应容器尺寸变化,默认启用
        //map.disableAutoResize(); //禁用自动适应容器尺寸变化

        //设置地图默认的鼠标指针样式。参数cursor应符合CSS的cursor属性规范
        //map.setDefaultCursor("copy");

        //设置拖拽地图时的鼠标指针样式
        //map.setDraggingCursor("copy");

        //返回地图默认的鼠标指针样式
        console.log(map.getDefaultCursor()); //url(http://api0.map.bdimg.com/images/openhand.cur) 8 8,default

        //返回拖拽地图时的鼠标指针样式
        console.log(map.getDraggingCursor()); //url(http://api0.map.bdimg.com/images/closedhand.cur) 8 8,move

        //设置地图允许的最小级别
        map.setMinZoom(1);

        //设置地图允许的最大级别
        map.setMaxZoom(19);

        //设置地图样式,样式包括地图底图颜色和地图要素是否展示两部分
        map.setMapStyle({style:'midnight'})
        //模板
        //默认地图样式(normal)
        //清新蓝风格(light)
        //黑夜风格(dark)
        //清新蓝绿风格(bluish)
        //高端灰风格(grayscale)
        //强边界风格(hardedge)
        //青春绿风格(darkgreen)
        //浪漫粉风格(pink)
        //午夜蓝风格(midnight)
        //自然绿风格(grassgreen)
        //精简风格(googlelite)
        //红色警戒风格(redalert)

        //自定义地图样式 调试样式http://wiki.lbsyun.baidu.com/custom/  JavaScript API v3.0 -->个性化地图-->个性化编辑方式
        // var setstyle = [ {
        //         "featureType": "water",
        //         "elementType": "geometry.fill",
        //         "stylers": {
        //             "color": "#ff0000ff",
        //             "hue": "#ff0000",
        //             "weight": "1",
        //             "lightness": 1,
        //             "saturation": 100,
        //             "visibility": "on"
        //         }
        //   }]
        // map.setMapStyle({
        //     styleJson:setstyle
        // })

        //返回地图可视区域    
        var boundspan = document.getElementById("bound");    
        // boundspan.click = function(){
        boundspan.addEventListener('click',function(){
            var ss = map.getBounds(); //返回了地图视野的 左下角 右上角坐标
            console.log(ss+"getBounds")
        });

        //返回地图当前中心点
        var centerbtn = document.getElementById("center");
        centerbtn.addEventListener('click',function(){
            var cen = map.getCenter(); //返回地图当前中心点
            var cen_point = new BMap.Point(cen.lng,cen.lat);
            var cen_mark = new BMap.Marker(cen_point);
            map.addOverlay(cen_mark);
            var cen_label = new BMap.Label("地图当前中心点",{position:cen_point});
            map.addOverlay(cen_label);
            console.log(cen.lng,cen.lat,"getCenter")
        })

        var points = [ //百度坐标 lng,lat
            {"point":new BMap.Point(112.638886,27.052889),"name":"点一"},
            {"point":new BMap.Point(112.243344,26.748755),"name":"点二"},
            {"point":new BMap.Point(112.552509,26.926427),"name":"衡州别院"},
            {"point":new BMap.Point(112.5783703713,26.8995635436),"name":"衡阳市人民政府"},
            {"point":new BMap.Point(112.6379079719,26.8948866350),"name":"衡阳火车站"},
            {"point":new BMap.Point(112.5962682402,26.9041238628),"name":"南华大学"},
            {"point":new BMap.Point(112.5600814819,26.8928800357),"name":"南华大学附属第二医院"},
            {"point":new BMap.Point(112.5561869144,26.8928034872),"name":"生态公园-北门"},
            {"point":new BMap.Point(112.6234089966,26.9170718962),"name":"石鼓书院"},
        ];
        var arrPoints = [];
        for(var i=0;i<points.length;i++){
            var marks = new BMap.Marker(points[i].point);
            var labels = new BMap.Label(points[i].name,{position:points[i].point});
            map.addOverlay(marks);
            map.addOverlay(labels);
            arrPoints.push(points[i].point);
        }


        //返回两点之间的距离,单位是米
        var distance = map.getDistance(points[4].point,points[6].point);
        console.log(points[4].name +"到"+points[6].name+"的距离是:"+distance+"m");
       
        //返回地图类型 getMapType
        var name = map.getMapType().getName();//返回地图类型名称
        var Layer = map.getMapType().getTileLayer();//返回地图类型对应的图层
        //var jection = map.getMapType().ggetProjection();//返回地图类型所使用的投影实例
        var Color = map.getMapType().getTextColor();//返回地图类型对应的前景色
        var Tips = map.getMapType().getTips();//返回地图类型的提示说明,用于在地图类型控件中提示
        console.log(
            JSON.stringify(map.getMapType())+
            "地图类型名称:"+ name+
            "地图类型对应的图层:"+Layer+
            //"地图类型所使用的投影实例"+jection+
            "地图类型对应的前景色:"+Color+
            "地图类型的提示说明:"+Tips
        );

        //返回地图视图的大小,以像素表示
        console.log("地图视图"+JSON.stringify(map.getSize()));

        //此方法仅返回视野信息(中心点坐标,缩放),不会将新的中心点和级别做用到当前地图上 
        console.log("视野信息"+JSON.stringify(map.getViewport()));

        //返回地图当前缩放级别
        console.log(map.getZoom())

        //将地图的中心点更改为给定的点 并移动到
        var nanhua = document.getElementById("nanhua");
        nanhua.addEventListener("click",function(){
            map.panTo(points[5].point)
        })
        
        //将地图在水平位置上移动x像素,垂直位置上移动y像素。
        //如果指定的像素大于可视区域范围或者在配置中指定没有动画效果,则不执行滑动效果
        // setTimeout(function(){
        //     map.panBy(600,600,{
        //         noAnimation:true //是否在平移过程中禁止动画
        //     })
        // },2000)
        
        //重新设置地图,恢复地图初始化时的中心点和级别
        //map.reset();

        //设置地图中心点。center除了可以为坐标点以外,还支持城市名
        //map.setCenter(points[5].point);

        //设置地图城市
        //注意当地图初始化时的类型设置为BMAP_NORMAL_MAP时,需要在调用centerAndZoom之前调用此方法设置地图所在城市
        map.setCurrentCity('衡阳')
             
        //根据提供的地理区域或坐标设置地图视野,调整后的视野会保证包含提供的地理区域或坐标
        // map.setViewport(arrPoints,{//ViewportOptions
        //     enableAnimation:true,//是否启用动画效果移动地图,默认为true。当调整后的级别与当前地图级别一致时,将使用动画效果移动地图
        //     margins:[30, 20, 0, 20] ,//视野调整的预留边距,例如: margins: [30, 20, 0, 20] 表示坐标点会限制在上述区域内
        //     //地图级别的偏移量,您可以在方法得出的结果上增加一个偏移值。
        //     //例如map.setViewport计算出地图的级别为10,如果zoomFactor为-1,则最终的地图级别为9
        //     zoomFactor:-1,
        //     //改变地图视野的延迟执行时间,单位毫秒,默认为200ms。此延时仅针对动画效果有效
        //     delay:3000
        // });
        // map.setViewport({//Viewport
        //     center:arrPoints[5],//视野中心点
        //     zoom:4 //视野级别
        // },{//ViewportOptions 同上});
        map.setViewport(arrPoints);

        var opts = {    
            width : 250,     // 信息窗口宽度    
            height: 100,     // 信息窗口高度    
            title : "Hello"  // 信息窗口标题   
        }
        var infoWindow = new BMap.InfoWindow("World", opts); 
        map.openInfoWindow(infoWindow,arrPoints[1]);
        //将视图切换到指定的缩放等级,中心点坐标不变
        //注意:当有信息窗口在地图上打开时,地图缩放将保证信息窗口所在的坐标位置不动
        var btn = document.getElementsByName("btns")
        var zoom = 15;
        btn[0].addEventListener("click",function(e){ //+
            zoom++;
            //map.setZoom(zoom);
            map.zoomIn();//放大一级视图
        })
        btn[1].addEventListener("click",function(e){ //-
            zoom--;
            //map.setZoom(zoom);
            map.zoomOut();//缩小一级视图
        })

        var kon = new BMap.OverviewMapControl();
        //添加控件
        //map.addControl(kon);// 缩略地图

        //移除控件
        //map.removeControl(kon);// 缩略地图


        //返回地图的容器元素。
        console.log(map.getContainer());

        var Menu = new BMap.ContextMenu();
        Menu.addItem(new BMap.MenuItem("dd"))
        //添加右键菜单--->右键菜单.html
        

        //将全景实例与Map类进行绑定 ---> 全景.html
        //map.setPanorama()

        //获取与Map类绑定的全景实例
        //?当创建用户自定义控件时,需要自行实现Control.initialize()方法,并将控件的容器元素添加到地图上,通过此方法可获得地图容器
        console.log(map.getPanorama())
        // 控件 ---> 控件.html
        }
 
    </script>
</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值