环境
vue2、“mapvgl”: “^1.0.0-beta.191”
解决
问题大概是,封装公共的显示标记点方法generateIconLayer时,遇到报错: TypeError: Can’t call method on undefined,mapvgl.min.js,这个报错,导致地图不显示任何标记点
排查出来的结果是,配置项offset传了undefined,导致一系列报错。最终代码如下:
import * as mapvgl from "mapvgl";
function generateIconLayer(options) {
return new mapvgl.IconLayer({
id: options.id,
width: options.width,
height: options.height,
offset: options.offset || [0, 0], // 一定要写默认值,不然报错:TypeError: Can't call method on undefined
icon: options.icon,
data: options.data,
enablePicked: true,
onClick: (e) => {
if (e.dataItem) {
options.onClick(e.dataItem);
}
},
});
}
解决方案是,只需设置个[0, 0]默认值。传送门:mapvgl官方文档