在vue3+ts+vite项目中用BMap百度地图自定义定位icon不显示

image.png

  1. 自定义icon路径,不能直接使用路径地址,需要require包裹

    var myIcon = new window.BMap.Icon(require("@/assets/icon.png", new window.BMap.Size(26, 32));
  2. 那么问题来了,vite+typescript项目不允许使用静态资源加载方法require,如果使用require关键字就会报错,那肯定没法显示坐标点。
  3. 所以我们使用import来解决
let imgUrl = ref('')

onMounted(async () => {
    let img = await import("/@/assets/41-placeholder.svg")
    imgUrl.value = img.default
}
  1. 使用
var map = new window.BMap.Map("container");          // 创建地图实例
map.centerAndZoom(point, 15);
map.enableScrollWheelZoom(true); // 鼠标滚动缩放
// 自定义坐标路径地址
var myIcon = new window.BMap.Icon(imgUrl.value, new window.BMap.Size(26, 32));
myIcon.setImageSize(new window.BMap.Size(26, 32))
var marker = new window.BMap.Marker(new window.BMap.Point(116.399, 39.910), {icon: myIcon});
map.addOverlay(marker);

你可能感兴趣的:(在vue3+ts+vite项目中用BMap百度地图自定义定位icon不显示)