Добрый день!
Вчера начал изучение API, есть несколько вопрос, я создал кластер объектов - проблем нет.
Добавил строку поиска на карте, и хочу, чтобы результаты поиска (геокодирования) были указаны на карте, но все предыдущие метки не надо перезатерать - как это сделать?
Использую код для геокодирования как в примере:
Вот
function showAddress (value) {
//myMap.removeOverlay(geoResult);
//var geocoder = new ymaps.Geocoder(value, {results: 1, boundedBy: myMap.getBounds()});
var myGeocoder = new ymaps.Geocoder(value);
ymaps.Events.observe(myGeocoder , myGeocoder .Events.Load, function () {
if (this.length()) {
myGeocoder = this.get(0);
myMap.addOverlay(myGeocoder);
myMap.setBounds(myGeocoder.getBounds());
}else {
alert("Ничего не найдено")
}
});
ошибка Команда не поддерживается объектом здесь: var myGeocoder = new ymaps.Geocoder(value);
//***********************Вот пример кластера********************//
function init() {
var center = [49.571110,34.505939],
myMap = new ymaps.Map('map', {
center: center,
zoom: 10
}),
MainContentLayout = ymaps.templateLayoutFactory.createClass('', {
build: function () {
MainContentLayout.superclass.build.call(this);
this.stateListener = this.getData().state.events.group()
.add('change', this.onStateChange, this);
this.activeObject = this.getData().state.get('activeObject');
this.applyContent();
},
clear: function () {
if (this.activeObjectLayout) {
this.activeObjectLayout.setParentElement(null);
this.activeObjectLayout = null;
}
this.stateListener.removeAll();
MainContentLayout.superclass.clear.call(this);
},
onStateChange: function () {
var newActiveObject = this.getData().state.get('activeObject');
if (newActiveObject != this.activeObject) {
this.activeObject = newActiveObject;
this.applyContent();
}
},
applyContent: function () {
if (this.activeObjectLayout) {
this.activeObjectLayout.setParentElement(null);
}
this.activeObjectLayout = new MainContentSubLayout({
options: this.options,
properties: this.activeObject.properties
});
this.activeObjectLayout.s
}
}),
MainContentSubLayout = ymaps.templateLayoutFactory.createClass(
'<h3>$[properties.name]</h3>' +
'<div width="100">' +
'$[properties.balloonContentHeader]<br>' +
'$[properties.balloonContentBody]' +
'</div>'
),
ItemLayout = ymaps.templateLayoutFactory.createClass(
'<div class="cluster-balloon-item" [if data.isSelected]style="font-weight: bold;"[endif]>$[properties.name]</div>'
),
clusterer = new ymaps.Clusterer({
clusterDisableClickZoom: true,
clusterBalloonMainContentLayout: MainContentLayout,
clusterBalloonSidebarItemLayout: ItemLayout,
clusterBalloonSidebarWidth: 100,
clusterBalloonWidth: 300
}),
geoObjects = [];
// Мой код
var centers = [0, 0];
for (var i = 0; i < jSonArray[0].results.length; i++) {
var url = "http://192.168.2.152:5555
centerslat = parseFloat(jSonArray[0].results[i].erpc_gps_lat);
centerslong = parseFloat(jSonArray[0].r
var coordinates = [
centers[0] + centerslat,
centers[1] + centerslong
];
geoObjects[i] = new ymaps.Placemark(coordinates, {
name: 'Агент № ' + i,
clusterCaption: 'Агент № ' + i,
balloonContentBody: '<br><br>' +
'<a href='+ url + '>Перейти на карточку агента</a> <br>',
balloonContentHeader: jSonArray[0].results[i].FullName,
balloonContentFooter: 'Агент'
});
}
clusterer.add(geoObjects);
myMap.geoObjects.add(clusterer);
}