Клуб API Карт

Открыть balloon Polygon если в url параметр

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

Возможно ли реализовать например если человек перешел по ссылке mysite.ru?id=24 то открылся balloon Polygon с индификатором 24 (Polygon например 50 на карте)

12 комментариев
Да, после создания карты и добавления объектов, Вы можете обрабатывать url, извлечь из него идентификатор объекта, найти его и открыть на нем балун
Дмитрий Ращупкин
11 октября 2017, 15:10
dimik,
вот меня интересует как обратиться к определенному 24. 
Дмитрий Ращупкин,
Зависит, от того какой класс вы используете для добавления объектов.
В общем случае для геообъектов можно использовать geoQuery.search


var myPolygon = new ymaps.Polygon(_coords_, {id: '24'});
myMap.geoObjects.add(myPolygon);


var myPolygon24 = ymaps.geoQuery(myMap.geoObjects)
  .search('properties.id = 24').get(0);
Дмитрий Ращупкин
11 октября 2017, 22:04
dimik,
Спасибо большое!!!!
Дмитрий Ращупкин
19 октября 2017, 15:48
dimik,
Вопрос такой а как открыть балун у полигона если он находится в коллекции
вот так не получается
var myPolygon24 = areaCollection.get(GETArr['item_id']-1);

myPolygon24.balloon.open();
Дмитрий Ращупкин
19 октября 2017, 16:19
Не могу открыть баллон из коллекции GeoObjectCollection 


var myPolygon24 = ymaps.geoQuery(myMap.geoObjects).search('properties.sdid = '+GETArr['item_id']).get(0);
var pixelBounds = myPolygon24.geometry.getPixelGeometry().getBounds();
var pixelCenter = [pixelBounds[0][0] + (pixelBounds[1][0] - pixelBounds[0][0]) / 2, (pixelBounds[1][1] - pixelBounds[0][1]) / 2 + pixelBounds[0][1]];
var geoCenter = myMap.options.get('projection').fromGlobalPixels(pixelCenter, myMap.getZoom());
myPolygon24.balloon.open();
Обновлено 19 октября 2017, 16:19
Дмитрий Ращупкин,
Соберите минимальный пример с одним полигоном на jsfiddle, в вашем коде непонятно что вы передаете в конструктор полигона и чему равен GETArr['item_id']
Дмитрий Ращупкин
19 октября 2017, 17:37
dimik,
Собрал но тут работает https://jsfiddle.net/CreatiK/wx6uka4f/
В этой GETArr['item_id'] переменой цифра участка $_GET например 24 он должен был открыть.
вот ссылка где не работает http://zemlimsk.ru/genplan-sumarokovo-2-2?item_id=26
Дмитрий Ращупкин
19 октября 2017, 17:42
dimik,
а тут сам скрипт добавления myzemli.ru/local/js/villageWidget.js полиготов
Дмитрий Ращупкин,
ну раз тут работает, а там нет, дело не в АПИ, а в ваших данных. По вашей ссылке балун открывается на полигоне с id = 24, потому что вы его захардкодили:
var myPolygon24 = ymaps.geoQuery(myMap.geoObjects).search('properties.sdid=24').get(0);
Дмитрий Ращупкин
19 октября 2017, 18:12
dimik,
Это я пытался уже без параметра открыть балун но он не хочет просто открывать его и нет ошибок. сейчас проверю все данные.


Данные правильны может я неправильно добавляю коллекцию или в коллекцию? Сижу с 8 утра не могу решить эту проблему
Обновлено 19 октября 2017, 18:13
Дмитрий Ращупкин
19 октября 2017, 18:16
dimik,
А если добавляю не через коллекцию а каждый многоугольник в цикле, то этот код работает.