问老师一个问题
来源:5-1 添加标记-多点标记
学习plus
2020-10-19 16:14:25
# 具体遇到的问题
为什么不能只创建一个对象,然后通过修改它的Position属性,再重绘,达到单标记的目的。
# 报错信息的截图
每次都默认position为中心点坐标了
# 相关课程内容截图# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里输入代码,可通过选择【代码语言】突出显示
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=b8be011c2c2cb53ab3503877757970fc"></script>
<style type="text/css">
* {margin: 0; padding: 0; list-style: none;}
#container {width:100%; height: 100%; position: absolute; top: 0; right: 0; bottom: 0; left: 0;}
#setCenterNode,#setZoomNode{
width: 280px;
position: absolute;
z-index: 99;
right: 20px;
top: 50px;
border: 1px solid black;
box-shadow: 0 0 5px black;
background: white;
}
#setCenterNode{
top: 50px;
}
#node li {cursor: pointer;}
#searchNode {width: 280px; height: 30px; background: white; position: absolute; top: 20px; right: 20px;}
</style>
</head>
<body>
<div id="container"></div>
<script type="text/javascript">
var map = new AMap.Map('container',{
zoom:10,
center:[120,30]
});
var marker = new AMap.Marker({
icon:'https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png',
offset:new AMap.Pixel(-25,-60)
});
map.on('click',function(e){
position:[e.lnglat.R,e.lnglat.Q],
marker.setMap(map)
});
</script>
</body>
</html>
1回答
同学你好,是可以只创建一个对象,然后通过修改position属性值,再重绘达到单标记的目的。但是position属性是
AMap.Marker()参数中的,点击事件的回调函数中不能直接设置。
需要通过标记对象中的setPosition()方法更新位置信息,参考:
祝学习愉快!
相似问题