微信小程序地图标记点,安卓手机一次性渲染不出来的问题

问题描述:

如果微信小程序端,渲染的标记物太多,安卓手机存在标记物不显示的问题,原因初步判断是地图还没有渲染完,标记物数据已经加载完了,导致没有在地图上显示。

解决办法:

使用map组件的bindupdated="onUpdated"方法监听地图渲染完成,这个时候,再去渲染标记物,而且还得多次渲染,如果覆盖物图片多了,一次还不够。所以我遍历了5次

javascript 复制代码
// 监听地图渲染完成
    onUpdated(e) {
        console.log('onRegionChange', e)
        for (let i = 0; i < 5; i++) {
            this.timer = setTimeout(() => {
                let markers = this.data.markers
                this.setData({
                    coverMarkers: markers
                });
            }, 1000 * i)
        }
    },

但是,千万注意,map上的标记物变量,不要自定义标记物变量使用同一个,否则你每次更新【自定义标记物变量】,就会导致onUpdated再次被触发,进入死循环,所以,这两个字段,虽然值一样,但是要分成两个,例如:

javascript 复制代码
data: {
        markers: [],//地图标记
        coverMarkers: [],//覆盖物标记
        currentLocation: {
            latitude: '',
            longitude: ''
        },
        scale: 16  // 添加缩放级别
    },

最后,地图标记坐标+自定义标记物:

javascript 复制代码
<map id="map" 
            longitude="{{currentLocation.longitude}}" 
            latitude="{{currentLocation.latitude}}" 
            scale="{{scale}}"
            markers="{{markers}}" 
            show-location 
            bindupdated="onUpdated"
            bindcallouttap="handleCalloutTap" 
            style="width: 100%; height: 300px;">
            <view slot="callout">
                <cover-view wx:for="{{coverMarkers}}" wx:key="id">
                <cover-view class="marker-container" marker-id="{{item.id}}" wx:if="{{item.customCallout}}">
                    <cover-view class="customCallout" style="background: {{item.bgColor}}">
                        <map-callout marker="{{item}}"/>
                    </cover-view>
                </cover-view>
            </cover-view>
            </view>
        </map>

这是我总结的解决办法,如果你有好的解决方法,辛苦告诉我一下

相关推荐
AAA修煤气灶刘哥3 分钟前
微信小程序+Spring Boot:三步教你搞定微信小程序登录+Token加密+全局拦截器
spring boot·后端·微信小程序
yw00yw26 分钟前
小程序插件使用
java·小程序·apache
00后程序员张34 分钟前
iOS 应用上架常见问题与解决方案,多工具组合的实战经验
android·ios·小程序·https·uni-app·iphone·webview
weixin_lynhgworld11 小时前
从闲置到珍宝:旧物回收小程序系统重塑物品价值
小程序·旧物回收
2501_9160074716 小时前
iOS App 上架实战 从内测到应用商店发布的全周期流程解析
android·ios·小程序·https·uni-app·iphone·webview
小小怪下士_---_1 天前
uniapp开发微信小程序自定义导航栏
前端·vue.js·微信小程序·小程序·uni-app
摸着石头过河的石头1 天前
小程序调试全攻略:微信/支付宝避坑指南,小白也能一次通关
前端·微信小程序
fakaifa2 天前
点大餐饮独立版系统源码v1.0.3+uniapp前端+搭建教程
小程序·uni-app·php·源码下载·点大餐饮·扫码点单
Dignity_呱2 天前
如何在不发版时,实现小程序的 AB 测试?
前端·面试·微信小程序
说私域2 天前
基于开源 AI 大模型 AI 智能名片 S2B2C 商城小程序视角下的企业组织能力建设与破圈升级
人工智能·小程序