漏刻有时百度地图API实战开发(12)(切片工具的使用、添加自定义图层TileLayer)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

TileLayer向地图中添加自定义图层

    var tileLayer = new BMap.TileLayer();
    tileLayer.getTilesUrl = function (tileCoord, zoom) {
        var x = tileCoord.x;
        var y = tileCoord.y;
        return 'images/tiles/' + zoom + '/tile-' + x + '_' + y + '.png';
    }
    var lockMap = new BMap.MapType('lock_map', tileLayer, {minZoom: 11, maxZoom: 17});
    var map = new BMap.Map('lock_map', {mapType: lockMap});
    map.centerAndZoom(new BMap.Point(121.554542541504, 29.813684463501), 13);
    map.enableScrollWheelZoom();

    //添加缩放控件
    var ctrlNav = new window.BMap.NavigationControl({
        anchor: BMAP_ANCHOR_TOP_LEFT,
        type: BMAP_NAVIGATION_CONTROL_LARGE
    });
    map.addControl(ctrlNav);

    //加载标注
    getMarker(markerArr, 0);

PC端限制显示范围

引入AreaRestriction_min.js库

    <script type="text/javascript" src="//api.map.baidu.com/library/AreaRestriction/1.2/src/AreaRestriction_min.js"></script>

设置可视视野范围

   //设置可视视野范围
    var b = new BMap.Bounds(
        new BMap.Point(121.2790142755745, 29.675582699353967),
        new BMap.Point(121.83093318072264, 29.945334949391032)
    );
    try {
        BMapLib.AreaRestriction.setBounds(map, b); // 以map为中心,已b为范围的地图
    } catch (e) {
        alert(e);
    }

移动端限制显示范围

  //设置可视视野范围
    var b = new BMap.Bounds(
        new BMap.Point(121.27872681781139, 29.67671237469328),
        new BMap.Point(121.83035826519644, 29.948214015429013)
    ); // 范围 左下角,右上角的点位置

    map.addEventListener("dragend", function (type, target) {
        //console.log(b.containsBounds(map.getBounds()));
        if (b.containsBounds(map.getBounds())) {
            //map.panTo(new BMap.Point(114.18882611986866, 36.475437590543926), 4);
        } else {
            map.panTo(pointCenter, 13);
        }
    });

自适应PC端和移动端

//设置可视视野范围
    var b = new BMap.Bounds(
        new BMap.Point(121.2790142755745, 29.675582699353967),
        new BMap.Point(121.83093318072264, 29.945334949391032)
    );
    
    var isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
    // alert(isMobile);
    if (isMobile) {//手机端
        map.addEventListener("dragend", function (type, target) {
            //console.log(b.containsBounds(map.getBounds()));
            if (b.containsBounds(map.getBounds())) {
                //map.panTo(new BMap.Point(114.18882611986866, 36.475437590543926), 4);
            } else {
                map.panTo(pointCenter, 13);
            }
        });
    } else {//PC端
        try {
            BMapLib.AreaRestriction.setBounds(map, b); // 以map为中心,已b为范围的地图
        } catch (e) {
            alert(e);
        }
    }

@漏刻有时

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漏刻有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值