Есть необходимость получить объемлющий прямоугольник, в котором содержится дом, на который указывает метка после геокодирования. В таком случае функция 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'
}));
}
}