uniapp中使用百度地图如何实现图片标点并修改地图上图片大小
在uniapp中使用百度地图时,我想在地图上添加图片标点,但不知道如何调整这些图片的大小。有没有具体的实现方法或代码示例可以参考?
2 回复
在uniapp中使用百度地图,可通过<map>组件的markers属性实现图片标点。设置markers的iconPath为图片路径,width和height控制图片大小。示例:
markers: [{
id: 1,
latitude: 39.92,
longitude: 116.46,
iconPath: '/static/marker.png',
width: 30,
height: 30
}]
在uni-app中使用百度地图实现图片标点并修改图片大小,可以通过以下步骤实现:
1. 引入百度地图SDK
在index.html中引入百度地图JavaScript API:
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=你的百度地图AK"></script>
2. 创建地图容器
在vue文件中创建地图容器:
<template>
<view>
<div id="map-container" style="width:100%; height:500px;"></div>
</view>
</template>
3. 初始化地图并添加图片标点
export default {
mounted() {
this.initMap();
},
methods: {
initMap() {
// 初始化地图
const map = new BMap.Map("map-container");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
// 创建自定义图标
const myIcon = new BMap.Icon(
'/static/marker.png', // 图标路径
new BMap.Size(40, 40), // 图标显示尺寸
{
anchor: new BMap.Size(20, 40), // 锚点位置(图标底部中心)
imageSize: new BMap.Size(40, 40) // 图标实际尺寸
}
);
// 创建标注点
const point = new BMap.Point(116.404, 39.915);
const marker = new BMap.Marker(point, {icon: myIcon});
// 添加标注到地图
map.addOverlay(marker);
}
}
}
关键参数说明:
- Size(宽度, 高度):控制图标显示大小
- anchor:设置图标的锚点位置(相对于图标左上角)
- imageSize:设置图标资源的实际尺寸
调整图标大小:
修改new BMap.Size()中的参数即可调整图标显示尺寸:
// 调整为80x80像素
new BMap.Size(80, 80)
注意事项:
- 图片路径需要使用绝对路径或static目录下的相对路径
- 建议使用PNG格式图片支持透明背景
- 图标尺寸不宜过大,建议不超过100x100像素
- 需要在manifest.json中配置网络白名单
通过调整Size参数即可轻松控制地图上图片标记的大小。

