Клуб API Карт

Объединение крайних меток из группы в многоугольник

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

Задача такова. Есть група меток, их нужно поместить в прямоугольник, но не знаю как выбрать координаты крайних меток чтобы использовать их для создания самого прямоугольника. Или есть более простой способ? 

 

6 комментариев

getBounds() геоколлекции возвращает прямоугольник

Получается неплохо:

polycoords = clusterer.getBounds();
                polycoords1 = polycoords[0];
                polycoords2 = polycoords[1];
               
                myRectangle = new ymaps.GeoObject({
                    geometry: {
                        type: 'Rectangle',
                        coordinates: [
                            polycoords1,
                            polycoords2
                        ]
                    },
                    properties: {
                        hintContent: 'Перетащи меня!',
                        balloonContent: 'Прямоугольник 2'
                    }
                }, {
                    fillColor: '#ffff0022',
                    strokeColor: '#3caa3c88',
                    strokeWidth: 5
                });
                 map.geoObjects.add(myRectangle);

но немножко не то что планировали.

Слишком многословно, проще сразу инстанцировать Rectangle

myRectangle = new ymaps.Rectangle(clusterer.getBounds(), {...}, {...});

 

Что планировали?

Запланованная картография будет охватывать районы на уровне улиц. Если рисовать прямоугольник то он захватывает много пространства где нет точек. В итоге если сделать несколько районов, то они накрывают друг друга. В идеале просили чтобы крайние точки были вершинами полигона. Зато спросил нет ли стандартного метода для вычисления точек.

 

Вы в посте написали про прямоугольник, нужен полигон?

По вашему описанию мне все равно до конца непонятно что именно нужно.

Если нужно строить чтото типа convex hull, то в АПИ нет подобного функционала.

Можно подсмотреть, как это сделано, например, в Leaflet markerClusterer

 

https://github.com/Leaflet/Leaflet.markercluster/blob/master/src/MarkerCluster.QuickHull.js

Да, извиняюсь неточно описал сразу проблему. Спасибо за ссылки