<map
id="map"
latitude="{{latitude}}"
longitude="{{longitude}}"
scale="{{scale}}"
markers="{{markers}}"
polyline="{{polylines}}"
show-location
theme="satellite"
style="width: 100%; height: 100%;"
bindmarkertap="changeMarkerColor"
bindregionchange="onRegionChange"
bindtap="onMapTap"
></map>
地图上加载了1987 个点位,会非常卡顿,要如何解决?
// 生成新的 markers,根据用户选择的图层来控制名称显示
let markers = filteredData.map((item, index) => {
let pinName = ''; // 默认不显示 pinName
// 根据选择的项目决定是否显示名称
if (item.project === '' && showPinName['']) {
pinName = item.pinName;
} else if (item.project === '' && showPinName['']) {
pinName = item.pinName;
}
return {
id: index + 1,
latitude: item.latitude,
longitude: item.longitude,
iconPath: getIconPath(item.project),
project: item.project,
width: 15,
height: 16,
callout: {
content: pinName, // 根据用户选择控制 pinName 是否显示
color: '#426DE5',
fontSize: 12,
borderRadius: 5,
bgColor: '#FFFFFF',
padding: 5,
display: pinName ? 'ALWAYS' : 'NONE' // 如果没有名称则不显示 callout
}
};
一次性加载这么多卡顿是正常的,手机性能达不到,一般使用marker聚合