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

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

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

Спасибо

Ответ 1

Поскольку объект Google Marker является объектом 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);
});

Ответ 2

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