Google Map API V3: как добавить пользовательские данные в маркеры
есть ли способ добавить некоторую пользовательскую информацию к моим маркерам для последующего использования. Есть способы иметь информационное окно и заголовок, но что делать, если я хочу связать маркер с другой информацией.
У меня есть другие вещи, отображаемые на странице, которая зависит от маркеров, поэтому, когда маркер щелкает, содержимое на странице должно меняться в зависимости от того, какой маркер был нажат.Я хотел бы хранить и извлекать пользовательские данные после того, как маркер, скажем, щелкнул так далее.
спасибо
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); });