Google Map API V3: как добавить пользовательские данные в маркеры


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

У меня есть другие вещи, отображаемые на странице, которая зависит от маркеров, поэтому, когда маркер щелкает, содержимое на странице должно меняться в зависимости от того, какой маркер был нажат.Я хотел бы хранить и извлекать пользовательские данные после того, как маркер, скажем, щелкнул так далее.

спасибо

2 102

2 ответа:

поскольку маркер Google является объектом JavaScript, вы можете добавить пользовательскую информацию в виде key: value, где ключ-допустимая строка. Они называются свойства объекта и можно подойти по-разному. Значение может быть любым законным, таким же простым, как числа или строки, а также функции или даже другие объекты. Три простых способа: в объявлении точечная нотация и квадратные скобки

var markerA = new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(0, 0),
    customInfo: "Marker A"
});

var markerB = new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(-10, 0)
});
markerB.customInfo = "Marker B";

var markerC = new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(-20, 0)
});
markerC['customInfo'] = "Marker C";

затем, чтобы получить его аналогичным образом:

google.maps.event.addListener(markerA, 'click', function() {
    alert(this.customInfo);
});

вы можете добавить свои собственные свойства к маркерам (просто будьте осторожны, чтобы не конфликтовать со свойствами API).