Поэтому у меня есть цикл while, который генерирует маркеры карт google:
<?php
mysql_data_seek($query, 0);
while ($row = mysql_fetch_array($query)) {
$lat2 = $row['usrhomelat'];
$lon2 = $row['usrhomelng'];
echo 'var icon = customIcons[ ' . $row['gender'] . '];';
echo 'var miLatLng = new google.maps.LatLng(' . $lat2 . ',' . $lon2 . ');';
echo 'var marker = new google.maps.Marker({';
echo 'position: miLatLng,';
echo 'map: map,';
echo 'icon: icon.icon';
echo '});';
}
?>
и захватывает соответствующий значок из этого массива:
var customIcons = {
male: {
icon: 'https://5d31037421'
},
female: {
icon: 'https://5d310374214f1
},
0: {
icon: 'https://5d310374214f
},
1: {
icon: 'https://5d310374214f1d0670ef
},
2: {
icon: 'https://5d310374214f1d0670e
}
};
Я задаюсь вопросом, почему, когда связанный компонент массива является целым числом, он работает, но когда это строка, то есть "мужская" или "женская", я получаю и невостребованную опорную ошибку: мужчина не определен.
Я мог бы временно переключить эти значения массива на целые числа, чтобы решить проблему, но, скорее всего, они понадобятся им как строки позже, поэтому я просто решаю эту проблему, прежде чем слишком много переключаться.
Искренняя благодарность за любую помощь:
Вы должны давать одиночные или двойные кавычки:
пример:
'male', 'female' etc
Индекс массива Integer, который вы можете предоставить с помощью наших кавычек, но строковый индекс, который вы должны указывать внутри котировок.
поэтому постарайтесь:
var customIcons = {
'male': {
'icon': 'https://5d31037421'
},
'female': {
'icon': 'https://5d310374214f1'
},
0: {
'icon': 'https://5d310374214f'
},
1: {
'icon': 'https://5d310374214f1d0670ef'
},
2: {
'icon': 'https://5d310374214f1d0670e'
}
};