Клуб API Карт

API 2.0 аналог групп из 1.х и поиск в группе

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

Уважаемые разработчики!

API 1.х была возможность фильтрации объектов в группе по заданному значению например по id. Как подобное реализовать в 2.0? 

Вот рабочий код на 1.х

 

// проверим наличие полигона в группе
var GroupPoligons = mapExport.getGroup;
if (GroupPoligons){
var filteredObj = GroupPoligons.filter(function (obj) {
return obj.id == id;
});
if (filteredObj.hasOwnProperty(0)) {
// полигон найден по ID. Надо показать его и включить режим редактирования
var polygon = filteredObj[0];
var geoPoints = polygon.getPoints();
if (geoPoints.length > 2) {
var maxLng = 0, maxLat = 0, minLng = 1000000, minLat = 1000000;
for(var i=0; i<geoPoints.length; i++) {
var curLng = geoPoints[i].getLng();
var curLat = geoPoints[i].getLat();
maxLng = Math.max(maxLng,curLng);
maxLat = Math.max(maxLat,curLat);
minLng = Math.min(minLng,curLng);
minLat = Math.min(minLat,curLat);
}
   mapExport.setBounds(new YMaps.GeoBounds(new YMaps.GeoPoint(minLng,minLat), new YMaps.GeoPoint(maxLng, maxLat)));
}else{
mapExport.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
}
// Включение режима редактирования
   polygon.startEditing();
return;
}
   }
// полигон по ID не найден значит нужно создать новый полигон
var polygon = new YMaps.Polygon();
setStylePoligon(polygon,fullColor,id);
mapExport.addOverlay(polygon);
// Включение режима редактирования
   polygon.startEditing();
6 комментариев

с помощью метода each

Спасибо, думал, что функции поиска или отбора есть, а оказывается нет (

Была, да вырезали.

из each сделать filter - 3 строчки кода

поэтому их и не стали делать

Алексей Yarrr!
28 января 2016, 04:08

Почему не хранить список в массиве и не фильтровать аналогично колбеком через filter?

Не уверен, что массив мне поможет.

Объясню ситуацию. Яндекс карту я использую в 1С. Координаты полигонов хранятся в 1С. При вызове формы с картой полигоны отрисовываются по имеющимся координатам. Добавление и редактирование полигонов происходит из 1С. При редактировании имеющегося полигона надо его как-то найти на карте. Идентификацию я делаю по уникальному идентификатору. Идентификатор тоже хранится в 1С и связан с набором координат. В идеале мне нужно хранить соответствие идетификатора геообъекту и иметь интсрумент быстрого отбора или поиска по идентификатору.

PS^ в вебпрограммировании я не силен, поэтому плиз по подробнее.