当前位置: 首页 > news >正文

网站及数据库怎么做后门沧州市网站建设价格

网站及数据库怎么做后门,沧州市网站建设价格,公司网络推广,绵阳网站改版场景: 移动端h5中,当我们需要在地图中展示很多marker点坐标的时候,通常会使用 bm-marker ,去循环生成marker点,在数量不多的情况下是没问题的,但是随着数据量的增加,地图就会变得卡顿,以及渲染延…

场景: 移动端h5中,当我们需要在地图中展示很多marker点坐标的时候,通常会使用 bm-marker ,去循环生成marker点,在数量不多的情况下是没问题的,但是随着数据量的增加,地图就会变得卡顿,以及渲染延迟,体验感极差
解决办法第一个想到的就是海量点 BmPointCollection,但是海量点明显的缺点就是不能自定义marker样式(icon)。但是业务是需要自定义图标 的,那没办法,就只能使用以下两种方式进行优化。

  1. 使用点聚合 BmlMarkerClusterer ,这个没啥好说的,缺点也很明显,不方便查看。
    <baidu-map @click="mapClick" class="bm-view" :zoom="12" :center="center"><bml-marker-clusterer :averageCenter="true" :styles="styles"><bm-marker @click="clickMarker(marker)" v-for="marker of pointList" :key="marker":position="{ lng: marker.lng, lat: marker.lat }" :icon="icon"></bm-marker></bml-marker-clusterer>
    </baidu-map>
    2.根据当前可视区域进行渲染(只渲染当前可视区域内的marker点)
    <!-- 1 正常渲染 添加ready事件  /> -->
    <baidu-map @click="mapClick" class="bm-view" :zoom="12" :center="center" @ready="readyMap"><bm-marker @click="clickMarker(marker)" v-for="marker of pointList" :key="marker":position="{ lng: marker.lng, lat: marker.lat }" :icon="icon"></bm-marker>
    </baidu-map>
    
    let bounds = ref(null) //可视区域
    let map = reactive(null) //地图实例
    let sourceList = [] //接口请求的marker点数据
    let pointList = [] //渲染的marker数据//地图ready事件
    function readyMap({ map:data }) {map = data//获取可视区域bounds.value = map.getBounds()// 地图添加缩放和拖拽事件 动态获取地图可视区域map.addEventListener('dragend', getBounds)map.addEventListener('zoomend', getBounds)
    }
    //获取地图的可视区域
    function getBounds() {if (!map) returnbounds.value = map.getBounds()
    }
    //动态计算区域内的坐标 sourceList.value
    watchEffect(() => {if (!bounds.value || !sourceList.value.length) return []//获取可视区域左下角let SouthWest = bounds.value.getSouthWest()//获取可视区域右上角                                                                                                                                                       				let NorthEast = bounds.value.getNorthEast();let markerList = [] // 筛选 获取区域内的点 sourceList.value.forEach(item => {if (item.lon >= SouthWest.lng &&item.lon <= NorthEast.lng &&item.lat >= SouthWest.lat &&item.lat <= NorthEast.lat) {markerList.push(item)}})//赋值显示pointList.value = markerList
    })
    //最后移除监听事件
    onUnmounted(() => {if (map) {map.removeEventListener("dragend", getBounds)map.removeEventListener("zoomend", getBounds)}
    })//marker icon 样式
    let icon= ref({url: 'https://xxxxxxxxxxxxxxxx.png',size: { width: 18, height: 18 },opts: {imageSize: { width: 18, height: 18 },},
    })

    如果还有其他更好的办法,欢迎补充!

http://www.sczhlp.com/news/144296/

相关文章:

  • 漳州网站开发点博大a优iis5.1新建网站
  • 如何做环保管家网站手机建站永久免费软件
  • 自驾游网站建设网站信息架构图怎么做
  • 网站策划素材新手怎么做详情页
  • 沧州网站建设培训网站策划做营销推广
  • 泰国公共建设网站做网站一定要有营业执照吗
  • 毕节网站建设广告网站建设价格
  • 大型车产品网站建设网站设计由哪个部门做
  • 大连做网站公司排行榜犀牛云网站建设怎么样
  • 棋牌类网站怎么做百度搜索
  • 手机网站菜单代码企业号怎么注册
  • 重庆定制网站建设公司制作h5
  • 找人做app网站公众号怎么制作投票活动
  • 南京网站制作千wordpress安裝
  • 中国石油工程建设协会网站ps教程自学网官网
  • 制作网站微信登陆入口网站购物商城功能模块图
  • 完整教程:【有源码】基于Hadoop+Spark的AI就业影响数据分析与可视化系统-AI驱动下的就业市场变迁数据分析与可视化研究-基于大数据的AI就业趋势分析可视化平台
  • Tomcat中启用h3的方法是什么
  • 建设银行官方门户网站快速建站模板自助建站
  • 网站空间域名注册新媒体营销的定义
  • 网站建设公司人员配备wordpress添加js
  • 三亚旅游网站建设北京企业网站制作
  • 数字营销网站主页优化延吉手机网站建设开发
  • 兰州做门户网站大兴网站定制开发
  • 青岛移动公司网站如何查看wordpress版本号
  • 返利网站怎么做推广计划名称怎么写
  • 微站网建站系统美食创意网页设计
  • 沧州网站建设公司翼马北京网页制作公司
  • 巩义郑州网站建设自己做的网站被攻击了
  • 想自己做个网站怎么做.net开发的大型网站