php 高德地图创建标注,自适应显示多个点标记

自适应显示多个点标记

html, body, #container {

height: 100%;

width: 100%;

}

.amap-icon img{

width: 25px;

height: 34px;

}

地图自适应

var map = new AMap.Map('container', {

resizeEnable: true,

center: [116.397428, 39.90923],

zoom: 13

});

map.clearMap(); // 清除地图覆盖物

var markers = [{

icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-1.png',

position: [116.205467, 39.907761]

}, {

icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-2.png',

position: [116.368904, 39.913423]

}, {

icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-3.png',

position: [116.305467, 39.807761]

}];

// 添加一些分布不均的点到地图上,地图上添加三个点标记,作为参照

markers.forEach(function(marker) {

new AMap.Marker({

map: map,

icon: marker.icon,

position: [marker.position[0], marker.position[1]],

offset: new AMap.Pixel(-13, -30)

});

});

var center = map.getCenter();

var centerText = '当前中心点坐标:' + center.getLng() + ',' + center.getLat();

document.getElementById('centerCoord').innerHTML = centerText;

document.getElementById('tips').innerHTML = '成功添加三个点标记,其中有两个在当前地图视野外!';

// 添加事件监听, 使地图自适应显示到合适的范围

AMap.event.addDomListener(document.getElementById('setFitView'), 'click', function() {

var newCenter = map.setFitView();

document.getElementById('centerCoord').innerHTML = '当前中心点坐标:' + newCenter.getCenter();

document.getElementById('tips').innerHTML = '通过setFitView,地图自适应显示到合适的范围内,点标记已全部显示在视野中!';

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以在高德地图的Marker对象中添加鼠标事件监听器,来实现鼠标移入显示label详细信息的功能。具体的实现步骤如下: 1. 创建Marker对象时,设置label属性为一个AMap.Text对象,用于显示详细信息。 ```javascript var marker = new AMap.Marker({ position: [lng, lat], label: { content: '详细信息', offset: new AMap.Pixel(0, -20) // 设置label偏移量,使其显示在Marker上方 } }); ``` 2. 给Marker对象添加mouseover和mouseout事件监听器,在鼠标移入和移出时显示或隐藏label。 ```javascript marker.on('mouseover', function (e) { marker.setLabel({ content: '详细信息', offset: new AMap.Pixel(0, -20), visible: true // 显示label }); }); marker.on('mouseout', function (e) { marker.setLabel({ visible: false // 隐藏label }); }); ``` 完整的代码示例: ```javascript var map = new AMap.Map('container', { zoom: 13, center: [116.397428, 39.90923] }); var markers = [ {lnglat: [116.405285, 39.904989], info: '北京市'}, {lnglat: [121.472644, 31.231706], info: '上海市'}, {lnglat: [113.280637, 23.125178], info: '广州市'}, {lnglat: [114.066112, 22.548515], info: '深圳市'} ]; for (var i = 0; i < markers.length; i++) { var marker = new AMap.Marker({ position: markers[i].lnglat, label: { content: markers[i].info, offset: new AMap.Pixel(0, -20) } }); marker.on('mouseover', function (e) { marker.setLabel({ content: e.target.getExtData().info, offset: new AMap.Pixel(0, -20), visible: true }); }); marker.on('mouseout', function (e) { marker.setLabel({ visible: false }); }); marker.setExtData(markers[i]); // 将详细信息存储在Marker对象的扩展数据中 marker.setMap(map); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值