Клуб API Карт

при нажатии на Checkbox не скрывается маркер

Пост в архиве.

Привет всем. Только изучаю API карт. При нажатии на chekbox на странице маркер добавляется, при повторном нажатии (при условии что checked = false) маркер не скрывается myMap.geoObjects.remove(myPlacemark); в чем причина??

 

<html><head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RUtype="text/javascript"></script>

    <style>

        #map {

            width: 100%;

            height: 250px;

        }

    </style>

 

<script type="text/javascript">

ymaps.ready(init);

 

var myMap;

 

function init () {

    myMap = new ymaps.Map(

        'map',

        {

            center: [55.76, 37.64],

            zoom: 10,

            type: 'yandex#satellite'

        }

    );

}

 

function setCenter () {

 

  if (cb1.checked) {

    var myPlacemark = new ymaps.Placemark(

        [55.76, 37.64], {

            iconContent: "",

            balloonContent: ""

        }, {

            draggable: true,

            hideIconOnBallon: false

        }

    );

     myMap.geoObjects.add(myPlacemark);

 

  }

    else 

      myMap.geoObjects.remove(myMap.geoObjects.myPlacemark);

}

 

</script>

</head>

 

<body>

    <div id="map"></div>

        <input type="checkbox" id = 'cb1' value="Изменить центр" onclick="setCenter();" />

</body>

</html>

 

2 комментария

Нет такого объекта myMap.geoObjects.myPlacemark

есть коллекция myMap.geoObjects

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/map.GeoObjects.xml?lang=ru

 

Чтобы ВАШ пример заработал надо сделать хотя бы так 

а если определить var myPlacemark ;внутри функции setCenter ()  ,то  между вызовами этой функцииJavascript просто заново инициализирует  'myPlacemark' зыбвая про старое значение

Спасибо, за ответ будем знать что нет такого объекта myMap.geoObjects.myPlacemark :)