灵活点标记 最后更新时间: 2024年01月02日
本文介绍如何使用AMap.ElasticMarker插件创建灵活点标记,它可以根据地图的缩放级别来改变图标样式,从而在用户缩放地图时提供更加丰富和个性化的展示效果。
灵活点标记示例
1、添加灵活点标记
1
1.1 准备
成为开发者并创建 key
为了正常调用 API ,请先注册成为高德开放平台开发者,并申请 web 平台(JS API)的 key 和安全密钥,点击 具体操作。
提示
你在2021年12月02日以后申请的 key 需要配合你的安全密钥一起使用。
2
1.2 创建地图
var map = new AMap.Map('container', { zoom: 10, //地图级别 center: [116.397428, 39.90923] //地图中心点 });3
1.3 创建样式列表
var stylesArray = [ { icon: { //图标样式 img: "https://a.amap.com/jsapi_demos/static/resource/img/men3.png", size: [16, 16], //图标的原始大小 anchor: "bottom-center", //锚点位置 fitZoom: 14, //最合适的级别 在此级别显示为图标原始大小 scaleFactor: 2, //地图放大一级的缩放比例系数 maxScale: 2, //图片的最大放大比例,随着地图放大图标会跟着放大,最大为2 minScale: 1, //图片的最小缩小比例,随着地图缩小图标会跟着缩小,最小为1 }, label: { //文本标注 content: "百花殿", //文本内容 position: "BM", //文本位置相对于图标的基准点,"BM"为底部中央 minZoom: 15, //label的最小显示级别,即文本标注在地图15级及以上,才会显示 }, }, { icon: { img: "https://a.amap.com/jsapi_demos/static/resource/img/tingzi.png", size: [48, 63], anchor: "bottom-center", fitZoom: 17.5, scaleFactor: 2, maxScale: 2, minScale: 0.125, }, label: { content: "万寿亭", position: "BM", minZoom: 15, }, }, ];提示
stylesArray数组中每个对象都代表了一个点标记的样式设置,例如第一个对象代表了"百花殿"的地标样式,第二个对象代表了"万寿亭"的地标样式。
4
1.4 创建样式列表的级别映射
var zoomStyleMapping = { 14: 0, //14-17级使用样式 0 15: 0, 16: 0, 17: 0, 18: 1, //18-20级使用样式 1 19: 1, 20: 1, };提示
zoomStyleMapping定义了在地图相应缩放级别显示不同点标记样式,当缩放级别为14-17时,会使用样式数组的第0位样式元素(本例中的"百花殿"的地标样式),而当缩放级别为18-20时,会使用第1位样式元素(本例中的"万寿亭"的地标样式)。
5
1.5 加载灵活点标记的插件
推荐使用异步安装插件,插件引入方式 插件的使用。
AMap.plugin(["AMap.ElasticMarker"], function () { var elasticMarker = new AMap.ElasticMarker({ position: [116.405562, 39.881166], //点标记位置 styles: stylesArray, //指定样式列表 zoomStyleMapping: zoomStyleMapping, //指定 zoom 与样式的映射 }); map.add(elasticMarker); //添加到地图上 map.setFitView(); //缩放地图到合适的视野级别 });
