Клуб API Карт

Найдено на тему «GeoObject»:
Геометрия объектов из народной карты
Mackiavelly67
4 апреля 2017, 16:12

Я думаю вопрос из области фантастики но все же...

Можно ли например при клике по объекту сооружения на обычной карте (дома в основном), получить его геометрию из народкой карты (если там есть она)?

Нужно для создания слоя активных областей над домами (хотя можно использовать для разных целей).

1 комментарий
GeoObject,Polygon,geocode,народная карта,API 2.1
Как удалять метки, поставленные через setFilter, при обновлении RemoteObjectManager?
Melody Nelson
21 октября 2016, 16:14
В init получаю features из RemoteObjectManager
var objectManager = new ymaps.RemoteObjectManager('/api/maps/getFeatures&bbox=%b&zoom=%z',
{
    clusterHasBalloon: true,
    splitRequests: false,
    geoObjectOpenBalloonOnClick: false,
    clusterHideIconOnBalloonOpen: false
});

В зависимости от масштаба это либо полигоны - округа или районы, либо точки. У каждого округа и района в details есть цифра, и ее нужно выводить меткой, только когда виден этот округ/район.

Создаю коллекцию для будущих меток:

var myGeoObjects = new ymaps.GeoObjectCollection({}, {
                        preset: "islands#redCircleIcon",
                        strokeWidth: 4,
                        geodesic: true
                    });

В setFilter высчитываю центр полигона и помещаю метку в коллекцию:

cameraObjectManager.setFilter(function(object) {
    if (object.properties.details.objectType == 'DISTRICT') {
        var polygonGeometry = new ymaps.geometry.Polygon(object.geometry.coordinates);
        polygonGeometry.setMap(myMap);
        polygonGeometry.options.setParent(myMap.options);
        var pixelBounds = polygonGeometry.getBounds();
        var pixelCenter = [pixelBounds[0][0] + (pixelBounds[1][0] - pixelBounds[0][0]) / 2, (pixelBounds[1][1] - pixelBounds[0][1]) / 2 + pixelBounds[0][1]];

        var myPlacemark = new ymaps.Placemark(
            pixelCenter, {
                iconContent: object.properties.details.cameraCount,
                hintContent: object.properties.details.name,
                balloonContentBody: object.properties.details.name + ": " + object.properties.details.cameraCount + " камер"
            }, {
                preset: 'islands#blackStretchyIcon'
            }
        );

        myGeoObjects.add(myPlacemark);
    }


    return true;
});

и добавляю на карту:

myMap.geoObjects.add(objectManager);
myMap.geoObjects.add(myGeoObjects);

Как сделать так, чтобы при каждом обновлении RemoteObjectManager, предыдущие метки из этой коллекции удалялись? Сейчас, если я масштабирую с района на округ, то районные метки остаются, и добавляется окружная метка. Нужно, чтобы удалялись только они, но не метки, полученные через сам RemoteObjectManager.

Что и в какой момент нужно вызывать, чтобы эта коллекция меток очищалась и удалялась с карты при каждом зуме/запросе RemoteObjectCollection?

GeoObject,GeoObjectCollection,RemoteObjectManager,Polygon,placemark
Доступ к кластеру со стороны кластеризованной метки
denis.ezhkov
12 сентября 2016, 19:40

Добрый день. Направьте пожалуйста в нужную сторону. 

На странице есть список элементов, связанных с точками на карте. При клике на элемент я могу получить доступ к соответствующему геообъекту. Иногда этот геообъект входит в кластер. Как получить доступ к этому кластеру, если в настоящий момент геообъект закластеризован? Кластеризую через ObjectManager.

Спасибо

2 комментария
ObjectManager,кластеризация,GeoObject,метка,Кластер
Как проверить попадание точек (добавленных через ObjectManager) в объект?
sqrt361
2 июня 2016, 04:01

Имеется большой массив точек. Все они добавляются через ObjectManager. Так же есть области в виде многоугольников и окружностей. Они добавляются как geoObject. Как проверить попадание в эти области?  

8 комментариев
ObjectManager,GeoObject
Хинт всплывающий над GeoObject
Valkinaz
9 октября 2015, 09:32

Привет.

Никак не получается понять, как изменить поведение хинта. Мне нужно, чтобы он не следовал за мышкой, а показывался над меткой. Кроме того, у хинта может быть разная высота, что нужно учитывать при позиционировании. Сейчас что имею:

1) При формировании geoObject установлен флаг "openHintOnHover: false".

2) geoObject'ы объединены в кластер. 

3) Для кластера добавлено событие, которое слушает "mouseenter" и "mouseleave".

4) Собственно, показ/исчезновение самого хинта уже сделано, осталось лишь правильно получить координаты и спозиционировать. Вот тут и застрял.

Кусок кода:

2 комментария
API 2.1,GeoObject,hint,cluster,mouseleave,mouseenter
как брать иконку кластера из JSON?
pmikle3
12 августа 2015, 17:39

Добрый день!

Согласно примеру из песочницы, здесь

1) создается "пустая" коллекция

2) "пустая" коллекция добавляется на карту

3) в коллекцию добавляются метки из JSON массива (они автоматически отображаются на карте)

Я хочу динамически загружать коллекции меток на карту с разными иконками меток и кластеров.

Я разобрался как задать иконки меток в JSON.

Можно ли в JSON указывать иконку кластера?

Я так понимаю, что в примере JSON содержит набор меток, а мне нужно чтобы там была информация о кластеризации.

2 комментария
кластеризатор,GeoObject,JSON
Перенос объектов из GeoObjectCollection
Artem Vozhzhov
22 июня 2015, 17:34

Всем привет!

 

Столкнулся с проблемой следующего характера: у меня есть GeoObjectCollection с объектами GeoObject и мне нужно из этой коллекции перенести объекты в другие коллекции.

 

Вот как я делаю

 

var collection = new ymaps.GeoObjectCollection(),
collectionEven = new ymaps.GeoObjectCollection(),
collectionOdd = new ymaps.GeoObjectCollection();

// здесь добавлены объекты в коллекцию collection

// а затем я хочу раскидать объекты по соотвествующим коллекциям.
collection.each(function (geoObject, i) {
if (i % 2 == 0)
collectionEven.add(geoObject);
else
collectionOdd.add(geoObject);
});

// и тут я обнаруживаю, что не все элементы коллекции collection были перенесены
// а половина
console.log(collection.getLength());

Что я делаю неправильно?

ЗЫ Пытался делать с помощью итератора, та же фигня:(

4 комментария
API 2.1,GeoObject,each,GeoObjectCollection