Как я храню больше информации в маркере?

Я использую Google Maps v3, и я создаю в стороне сервера json набор данных местоположения. Таким образом, когда я получаю это, я выполняю итерации через тот набор и создаю объект маркера для каждого из них.

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

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

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

Я пытался поддержать этот массив объектов и сослаться на него от вызывающего объекта без успеха, потому что функция вызвана маркером а не объектом местоположения. Таким образом, я думал, возможно ли хранить больше информации в объекте маркера карт Google как использование поля общего назначения.

Сообщите мне, необходимо ли больше информации.

Спасибо!

7
задан TMS 10 April 2012 в 19:16
поделиться

1 ответ

Да, можно, благодаря JavaScript. В этом языке объекты и хэш-таблицы - это одно и то же 1 .

Вот как вы создаете свой маркер:

var point = new google.maps.LatLng(40.70, -74.00);
var myMarker = new google.maps.Marker({ position: point, map: map });

И вот как вы можете добавить дополнительное свойство к вашему объекту myMarker :

myMarker.myNewField = 100;

Viola! Нет необходимости хранить отдельные массивы связанных данных. Нет необходимости в поле общего назначения. Просто придумайте новое название свойства, и все готово.


1 Обзор языка программирования JavaScript Дугласа Крокфорда.

9
ответ дан 7 December 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: