zoukankan      html  css  js  c++  java
  • 百度地图 map 常用 的api

    <!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>

    转载至:https://blog.csdn.net/weixin_42448623/article/details/100690842

  • 相关阅读:
    2021/6/28
    2021/6/25
    IDEA快捷键
    maven的一些问题
    Maven安装
    2021/6/14
    nmcli 网络管理工具
    linux yum仓库配置
    linux 防火墙selinux ,firewalld, iptables
    linux root密码重置
  • 原文地址:https://www.cnblogs.com/xuwupiaomiao/p/14986093.html
Copyright © 2011-2022 走看看