Answer the question
In order to leave comments, you need to log in
What am I doing wrong with the formation of the collection in the ObjectManager yandex map?
Hello. I'm trying to display a list of addresses on a Yandex map. I googled the solution https://tech.yandex.ru/maps/jsbox/2.1/object_manager
I do it in a similar way, but instead of json I form a js object, which, as the documentation says, is also accepted.
Here is the code:
$(function() {
ymaps.ready(init);
function init(){
var addstr, myGeocoder;
var myCollection = new ymaps.GeoObjectCollection();
var objects = [];
var objectManager = new ymaps.ObjectManager({
// Чтобы метки начали кластеризоваться, выставляем опцию.
clusterize: true,
// ObjectManager принимает те же опции, что и кластеризатор.
gridSize: 32,
clusterDisableClickZoom: true
});
//парсим адрес
cities.forEach(function(item, i, arr) {
//console.log(item['city']);
addstr = item['city'].replace(/[\t\n]\s+/g, ' ').trim();
myGeocoder = ymaps.geocode(addstr);
myGeocoder.then(
function (res) {
var coords = res.geoObjects.properties.get('metaDataProperty').GeocoderResponseMetaData.Point.coordinates;
myCollection.add(new ymaps.Placemark([coords[1],coords[0]]));
objects.push({
type: 'Feature',
id: i,
geometry: {
type: 'Point',
//coordinates: [39.22,51.45]
coordinates: [coords[1],coords[0]]
},
properties: {
balloonContent: item['city'],
hintContent: item['city']
}
});
},
function (err) {
// обработка ошибки
console.error("Не удалось обработать адрес");
}
);
});
// Создание карты.
var myMap = new ymaps.Map("yamap", {
// Координаты центра карты.
// Порядок по умолчнию: «широта, долгота».
// Чтобы не определять координаты центра карты вручную,
// воспользуйтесь инструментом Определение координат.
center: [57.74, 54.70],
// Уровень масштабирования. Допустимые значения:
// от 0 (весь мир) до 19.
zoom: 6
});
var collection = {
type: 'FeatureCollection',
features: objects
};
console.log(collection);
objectManager.add(collection);
console.log(objectManager);
myMap.geoObjects.add(objectManager);
});
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question