为什么不能删去marker1?

为什么不能删去marker1?

<!DOCTYPE html>

<html lang="en">


<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.11&key=e22196035aaa10db3b0b6eb1ab64619e&plugin=AMap.Autocomplete"></script>


<style type="text/css">

* {

margin: 0;

padding: 0;

list-style: none;

}

#container {

width: 100%;

height: 100%;

position: absolute;

left: 0;

top: 0;

}

.amap-icon img {

width: 25px;

height: 34px;

}

</style>

</head>


<body>

<div id="container"></div>


<script type="text/javascript">

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

center: [116.379391, 39.861536],

zoom: 11

});


map.setDefaultCursor('-webkit-grabbing');


var marker = new AMap.Marker({

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

position: [116.379391, 39.861536]

});

marker.setMap(map);


map.on('click', function(e) {

var markerIcon = new AMap.Icon({

size: new AMap.Size(610, 610),

image: './1.png',

imageSize: new AMap.Size(30, 30)

});


var marker1 = new AMap.Marker({

icon: markerIcon,

position: [e.lnglat.lng, e.lnglat.lat],

offset: new AMap.Pixel(-15, -25) //调整点击位置与标记的偏差

});

map.remove([marker, marker1]);

map.add(marker1);

});

</script>

</body>


</html>

为什么只能删去marker而不能删去marker1?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕夭夭 2019-05-12 10:08:51

你好同学, 这里和marker没有关系。参考老师第一次回复,在你点击按钮的时候,marker1已经重新赋值了,不是原来的值了,如果想要删除marker1,就要在点击事件里面先移出marker1 ,然后在重新赋值新的标记。

但是点击添加新标记的时候marker1是不存在的,会报错。所以要在全局下面也定义一个marker1,这样当你添加新的标记,先把之前的标记清除,然后添加新的标记。这样和老师给出的参考答案是一样的逻辑哦。同学的方式是没有办法实现的。不知道同学哪里理解不了,可以详细说一下哦。

祝学习愉快 ,望采纳。

好帮手慕夭夭 2019-05-11 18:58:25

你好同学,按照你的代码逻辑是有问题的,只能说你把全局下面的标记定义成marker1,就像老师给出的建议逻辑是一样的了

http://img1.sycdn.imooc.com//climg/5cd6aab80001f2ce09810734.jpg

所以按照老师第一次回复给出的建议修改就行。祝学习愉快 ,望采纳。

  • 提问者 soso_crazy #1
    我的marker1是点击鼠标后生成的自定义标记,我的marker是用官方推荐的图标。我想把marker无需点击就把标记定位在北京的中心点,而marker1是点击后生成的标记,下一次点击如何删除点击后生成的自定义标记marker1?我的marker和maker1是不同的标记
    2019-05-11 20:07:32
好帮手慕夭夭 2019-05-11 16:41:51

你好同学,因为当你移出marker1之前,marker1已经重新赋值了一个新的标记点,所以它找不到原来的标记点没办法删除,而新的标记点并没有添加所以也没有移出哦。

http://img1.sycdn.imooc.com//climg/5cd68a070001baca08820361.jpg

这里不需要设置两个标记点,如下调整即可:

http://img1.sycdn.imooc.com//climg/5cd68aca0001ac2609850646.jpg

祝学习愉快 ,望采纳。

  • 提问者 soso_crazy #1
    如果我要删除marker1而不删除marker应该如何修改?
    2019-05-11 17:09:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师