Клуб API Карт

Помогите понять почему выдает ошибку Object [object Object] has no method 'contains'

Пост в архиве.
Diakon1983
11 апреля 2013, 19:41

Добрый день. Вот код скрипта. Хочу что бы при поподании точки в область круго происходило событие (например, алерт). Но выбивает ошибку  Uncaught TypeError: Object [object Object] has no method 'contains'

Скажите почему не работает? Ведь у круга ж есть метод contains

 

ymaps.ready(init);
function init() {
    var myMap = new ymaps.Map("YMapsID", {
        center: [41.9742218, 45.0298057],
        zoom: 12
    }),
        myPlacemark = new ymaps.Placemark([41.9742218, 45.0298057]);
    myMap.controls.add('mapTools').add('zoomControl');
    myMap.geoObjects.add(myPlacemark);
    var myCircle = new ymaps.Circle([
        // Координаты центра круга
        [41.9742218, 45.0298057],
        // Радиус круга в метрах
        5000
    ]);
    myMap.geoObjects.add(myCircle);
    if (myCircle.contains(new YMaps.GeoPoint(41.9742218, 45.0298057))) alert(1);
}

 

6 комментариев
метод есть не у круга, а у геометрии круга. и также в Javascript ymaps != YMaps

исправил if (myCircle.contains(new YMaps.GeoPoint(41.9742218,45.0298057))) alert(1); на  if (myCircle.contains(new ymaps.GeoPoint(41.9742218,45.0298057))) alert(1) 

Теперь выдает ошибку: 

undefined is not a function

 Скажите, а чкак тогда обратиться к методу геометрии круга?

во втором АПИ нет класса GeoPoint (он был в первом). Вы чтото понадергали из разных версий. Посмотрите документацию на 2.0. В песочнице есть примеры

Вот тут нашел подходящий мне пример http://dimik.github.io/ymaps/examples/geometry-contains/

Но в примере событие возникает когда двигают мышку  - метка меняет цвет( myGeoObjectsCollection.events.add('drag', function (e) ). А как изменить, что бы событие возникало сразу как открыта страница, т.е. метка попавшая в круг становится красной сразу после открытия страницы а не движения мышкой фигуры?

 

 

Убери обработчик drag.

Все, получилось:







только вопрос, а как вместо alert (1) можно вывести координаты точки Placemark ?