Клуб API Карт

Есть ли возможность как-то получить границы дома на карте?

Пост в архиве.
lukyanovanton
16 ноября 2013, 12:20

Есть необходимость получить объемлющий прямоугольник, в котором содержится дом, на который указывает метка после геокодирования. В таком случае функция obj.geometry.getBounds() возвращает массив, содержащий две совпадающие точки, которые указывают на "центр" дома. Это нормальное поведение? Есть ли вообще возможность получить этот прямоугольник? Пример кода, который можно вставить в песочницу:

 

ymaps.ready(init);
var myMap;
function init() {
    ymaps.geocode('Ярославль', {results: 1}).then(function (res) {
        var firstGeoObject = res.geoObjects.get(0);
        myMap = new ymaps.Map("map", {
            center: firstGeoObject.geometry.getCoordinates(),
            zoom: 16,
            behaviors: ['default', 'scrollZoom']
        });
        myMap.container.fitToViewport();
        showBounds();
    }, function (err) {
        alert(err.message);
    });
    function showBounds() {
        myMap.events.add('click', function (e) {
            myMap.geoObjects.each(function(o) {
                myMap.geoObjects.remove(o);
            });
            
            var coords = e.get('coordPosition');
            
            ymaps.geocode(coords, {results: 1}).then(function (res) {
                res.geoObjects.each(function (obj) {
                    addPm(coords, obj.properties.get('name'));
                    var bounds = obj.geometry.getBounds();
                    if (bounds) {
                        addPm(bounds[0], 1);
                        addPm(bounds[1], 2);
                    }
                });
            });
        });
    }
    function addPm(coords, iconContent) {
        myMap.geoObjects.add(new ymaps.Placemark(coords, {
            iconContent: iconContent
        }, {
            preset:'twirl#blueStretchyIcon',
            balloonMaxWidth:'250'
        }));
    }
}