Как мне хранить больше информации в маркере? - PullRequest
7 голосов
/ 22 апреля 2010

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

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

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

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

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

Пожалуйста, дайте мне знать, если требуется дополнительная информация.

Спасибо!

1 Ответ

9 голосов
/ 22 апреля 2010

Да, вы можете, благодаря 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;

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


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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...