Клуб API Карт

Как получить id объекта по координатам полученным от геокодера?

ada-analitik
6 апреля, 14:13

На карту добавлены обьекты 

    function parseJson(url){
    $.getJSON(url)
        .done(function (geoJson) {

            geoJson.features.forEach(function (obj) {
                // Задаём контент балуна.
                inc_price = obj.properties.price;
                itogsum = obj.properties.price;
                //obj.properties.balloonContent = itogsum;
                // Задаём пресет для меток с полем iconCaption.
                if (obj.properties.iconCaption) {
                    obj.options = {
                        preset: "islands#greenDotIconWithCaption"
                    }
                }
            });

            // Добавляем описание объектов в формате JSON в менеджер объектов.
            objectManager.add(geoJson);
            // Добавляем объекты на карту.
            map.geoObjects.add(objectManager);
        });
    }

Как получить id объекта по координатам полученным от геокодера?

7 комментариев
геокодер не возвращает никаких id,
только сгенерить самому, например через lodash.uniqueId

dimik,
Я наверное некорректно задал вопрос, у меня есть обьекты на карте, тип: Polygon, добавлены они так:

function parseJson(url){
$.getJSON(url)
.done(function (geoJson) {
geoJson.features.forEach(function (obj) {
// Задаём контент балуна.
inc_price = obj.properties.price;
itogsum = obj.properties.price;
//obj.properties.balloonContent = itogsum;
// Задаём пресет для меток с полем iconCaption.
if (obj.properties.iconCaption) {
obj.options = {
preset: "islands#greenDotIconWithCaption"
}
}
});
// Добавляем описание объектов в формате JSON в менеджер объектов.
objectManager.add(geoJson);
// Добавляем объекты на карту.
map.geoObjects.add(objectManager);
});
}



У объектов есть свойство description.
Так же у меня есть поле куда вводится адрес, с помощью геокодера я получаю координаты адреса. Необходимо получить свойство description объекта в который входит данная точка. 
пробовал вывести так: console.log(geoObject.geometry.contains(coords)); 
так же пробовал перебрать обекты с помощью функции each  и сравнивать коардинаты, но ничего не получилось(
ada-analitik,
соберите пример на jsfiddle
dimik,
я обьекты создаю из файла geoObjects.geojson, на  jsfiddle неполучается передать этот файл
 
точка myPlacemark - добавлена на карту, надо проверить в какой именно объект она входит.





я перебераю все обьекты так :
 

objectManager.objects.each(function(object) {
//как сравнивать ???
if (objectManager.geometry.contains(myPlacemark)) {
console.log(object);
}
Обновлено 7 апреля, 10:26
dimik,
Данная карта http://test-map.tw1.ru/map2.php
ada-analitik,
objectManager не хранит геообъекты, в each вы будете получать кусочки json.
Используйте geoQuery вместо objectManager, см метод searchContaining


var objects = ymaps.geoQuery(geoJson)
  .addToMap(map);


при геокодировании из формы можно будет искать так:
var myGeocoder = ymaps.geocode(value);
myGeocoder.then(
function (res) {
coords = res.geoObjects.get(0).geometry.getCoordinates();
alert(coords);
if (myPlacemark) {
myPlacemark.geometry.setCoordinates(coords);
}
objects.searchContaining(coords).setOptions({fillColor: '#ff0005'});

...
dimik,
Спасибо, то что нужно.