百度地图 缩放 0.5 zoomend zoom_changed

这篇具有很好参考价值的文章主要介绍了百度地图 缩放 0.5 zoomend zoom_changed。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设置/获取地图级别官网地址 : https://lbsyun.baidu.com/jsdemo.htm#bSetGetMapZoom文章来源地址https://www.toymoban.com/news/detail-689280.html

解决方案

 //创建一个地图
let map = new BMapGL.Map("container");
//这里还需定位下位置,这里就不详细说明了,官方文档有示例
//开启鼠标滚轮缩放功能。仅对PC上有效
map.enableScrollWheelZoom(true);
//滚动开始触发事件,可通过map.getZoom() 获取缩放比例
map.addEventListener("zoomstart", function (e) {
    console.log(e.target.zoomLevel.toFixed(2));
});
//滚动动画及 步进入 触发事件 此事件在 zoomend 后 还会触发 ,不建议在此处进行任何操作,该位置仅做测试
map.addEventListener("zoom_changed", function (e) {
    console.log(e.target.zoomLevel.toFixed(2));
});
//滚动结束触发事件,如不想频繁触发,可通过节流函数控制
map.addEventListener("zoomend", function (e) {
    console.log(e.target.zoomLevel.toFixed(2));
});
//滚动动画开始时触发,在zoomstart事件后执行  
map.addEventListener("animation_start", function (e) {
    //加try 的原因 该方法不是zoom 唯一所有
    try {
        //zoom 包含三个参数 current 当前缩放比例 ,target 目标缩放比例  diff 比例差值
        let _zoom = this._animationInfo.zoom;
        //绝对值验证 放大 还是 缩小 
        //0.75 是为了防止 缩放控件 +1 -1 或其他缩放方法影响 
        if (!(Math.abs(_zoom.diff) > 0.75)) {
            // o.5 步进值
            if (_zoom.diff > 0) {
                this._animationInfo.zoom.diff = 0.5;
            } else {
                this._animationInfo.zoom.diff = -0.5;
            }

            this._animationInfo.zoom.current = _zoom.current;
            //改变目标值
            this._animationInfo.zoom.target = _zoom.current + this._animationInfo.zoom.diff;

        }

    } catch (error) {

    }
});

源码分析

//动画触发事件
_startInfiniteZoomAnimation: function(t) {
    var e = this;
    e._ani && e._ani.stop(!!t.goToEnd, {
        stopCurrentAnimation: t.stopCurrentAnimation
    }),
    e._infiniteAni || (this.fire(new aB("onanimation_start")),
        e._infiniteAni = new l({
            duration: 1e4,
            transition: bq.linear,
            render: function() {
                //步进值
                var i = e._animationInfo.zoom;
                return Math.abs(i.current - i.target) < .001 ? (e._setValue("zoom", i.target),
                    void e._infiniteAni.stop()) : (i.current += .35 * (i.target - i.current),
                    e._setValue("zoom", i.current),
                    void (t.renderCallback && t.renderCallback()))
            },
            finish: function() {
                e._infiniteAni = null,
                    e._animationInfo = {},
                    e.fire(new aB("onanimation_end")),
                t.callback && t.callback()
            },
            onStop: function() {
                e._infiniteAni = null,
                    e._animationInfo = {},
                    e.fire(new aB("onanimation_end")),
                t.callback && t.callback()
            }
        }))
}
// zoom_changed 触发事件
_setValue: function (e, T) {
    if (e === "zoom") {
        this._preZoomLevel = this.zoomLevel;
        var i = this._getProperZoom(T);
        T = i.zoom;
        if (T !== this.zoomLevel) {
            this.zoomLevel = T;
            if (T < 5) {
                this.restrictCenter(this.centerPoint)
            }
            this.fire(new fS("on" + e + "_changed"))
        }
        return
    } else {
        if (e === "center") {
            this.centerPoint = T
        }
    }
    this["_" + e] = T;
    this.fire(new fS("on" + e + "_changed"))
}

到了这里,关于百度地图 缩放 0.5 zoomend zoom_changed的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 高德地图通过画面中的一个覆盖物设置图中心点和zoom

    需要将这个覆盖物置于地图中间且不超过地图边界的放至最大 计算覆盖物中心点,定为地图中心点 计算覆盖物的最大经纬度,和最小经纬度,测算出实际最长距离,根据距离与zoom对应关系设置zoom

    2024年02月09日
    浏览(16)
  • 百度地图采集经纬度坐标数据定位的javascript实战开发(地理坐标拾取系统、地址定位点选插件、实时定位、数据导入、地理编码、位置纠偏)

    百度地图采集经纬度坐标数据定位的javascript实战开发(地理坐标拾取系统、地址定位点选插件、实时定位、数据导入、地理编码、位置纠偏)

    在百度地图的标注开发中,最为关键的操作就是经纬度坐标信息的拾取。在不同的应用场景,坐标的拾取方式不同。现就常见的地理坐标拾取系统、地址定位点选插件、手机端GPS实时定位、数据导入、地理编码、位置纠偏等做全面的介绍。 传送门:http://api.map.baidu.com/lbsapi/

    2024年02月01日
    浏览(11)
  • echarts地图组件-地图纹理、地图3D投影、多个geo缩放同步

    echarts地图组件-地图纹理、地图3D投影、多个geo缩放同步

    1.实现效果: 2.实现代码: ①geo:{ // geo设置,outShadow为是否开启3D阴影;若开启,则layoutCenter要设置大一点偏移造成底部外框阴影效果,areaColor是区块的颜色,shadowColor是阴影的颜色 { map: \\\"jiangxi\\\", layoutCenter: this.option.outShadow ? [\\\"50%\\\", \\\"51.5%\\\"] : [\\\"50%\\\", \\\"50%\\\"], //地图位置 layoutSize: \\\"11

    2024年02月04日
    浏览(15)
  • leaflet-uniapp 缩放地图的同时 显示当前缩放层级

    leaflet-uniapp 缩放地图的同时 显示当前缩放层级

    记录实现过程: 需求为移动端用户在使用地图时,缩放地图的同时,可以获知地图此时缩放的级别。 效果图如下:此时缩放地图级别为13 map.on(\\\'\\\') 有对应的诸多行为 查看官网即可,这里根据需要为--zoomstart zoom zoomend 代码如下:  

    2024年02月14日
    浏览(8)
  • Unity 大地图滑动与缩放

    Unity 大地图滑动与缩放

    目录 1.UGUI实现大地图滚动与缩放 2.Sprite Renderer实现大地图滑动与缩放 1.UGUI实现大地图滚动与缩放    如图,大地图尺寸是超出屏幕1920*1080的,我们使用ScrollView实现大地图滑动  ⚠️注意:camera使用 Perspective 2.Sprite Renderer实现大地图滑动与缩放    ⚠️注意:Camera使用Orthogra

    2024年02月11日
    浏览(8)
  • 243:vue+Openlayers 更改鼠标滚轮缩放地图大小,每次缩放小一点

    243:vue+Openlayers 更改鼠标滚轮缩放地图大小,每次缩放小一点

    第243个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayers项目中设置鼠标滚轮缩放地图大小,每次滑动一格滚轮,设定的值非默认值1。具体的设置方法,参考源代码。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 示例效果

    2024年02月09日
    浏览(65)
  • uniapp小程序地图监听缩放层级

    uniapp小程序地图监听缩放层级

            功能需求是在地图上添加makers,但是就算缩放成最大层级,地图上还是会有那么一坨图标,看起来就很丑。。。         在官方看了文档只有监听地图视野移动的  只用拖动地图时才会触发。我也没找到官方能监听地图缩放的api所以只能用一个蠢方法去实现了。

    2024年02月13日
    浏览(9)
  • 地图多点自动缩放,居中,思路和手写

    地图多点自动缩放,居中,思路和手写

    多个标记点顺次标记连接起来 zoom缩放到合适等级,刚好能放下那么多点 视野刚好在正中间 获取多点的最大经纬度点和最小经纬度点(这两个点相距离最远) 计算2个这两点之间的距离 地图是有比例尺的,根据比例尺可以得到1cm对应的zoom值 根据要展示的长度,适当调整zoo

    2024年01月22日
    浏览(14)
  • Cesium 鼠标滚轮事件获取地图缩放等级

    Cesium 监听鼠标滚轮,滚轮每次滚动获取当前地图瓦片等级。 灵感来自:cesium获取当前地图瓦片缩放级别_右弦GISer的博客-CSDN博客_cesium 获取缩放级别 实际使用时体验并不好,最后使用监听高度的方法。

    2024年02月11日
    浏览(66)
  • vue使用百度地图获取可视区域四角坐标(百度地图四角坐标,百度地图3D可视区域四角坐标)

    百度地图api只提供了左下角和右上角两个坐标,左上角坐标和右下角坐标需要自己操作获取,方法如下: 然后在地图上添加监听事件, 这样用户在拖拽或缩放地图时也可以获取到地图可视区域的四角坐标: 创作不易,感觉有用就一键三连,感谢(●\\\'◡\\\'●)

    2024年02月11日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包