У меня проблемы с картами, показывающими маркеры из базы данных MySql.
Карта не отображается, но я вижу, что карта начинает инициализироваться. На нем нет никаких маркеров.
Я использую ту же карту, показывая только одну lat/long
из базы данных MySQL Он работает прекрасно без маркеров, но когда я зацикливаюсь, чтобы разместить маркеры, он просто не хочет показывать маркеры.
Я действительно не хочу усложнять вещи с таблицами XML. Я также использовал подобный код в картах v2, и все работало нормально. Это мой код:
<script src="https://maps.googleapis.com/maps/api/js?v=3.11&sensor=false" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
(function (){
var map = new google.maps.Map(document.getElementById('map_canvas'), options);
PHP начинается
while($apa = mysql_fetch_array($result))
{
$lat_map = $apa["lat"];
$lon_map = $apa["lon"];
$adr_apa = $apa["adresa"];
PHP заканчивается
var options = {
zoom: 12,
center: new google.maps.LatLng(<?php echo $lat_map; ?>, <?php echo $lon_map; ?>),
mapTypeId: google.maps.MapTypeId.HYBRID,
mapTypeControl: false
};
var marker = new google.maps.Marker({
position: new google.maps.LatLng(<?php echo $lat_map; ?>, <?php echo $lon_map; ?>),
map: map,
title: 'Click Me'
});
google.maps.event.addListener(marker, 'click', function() {
infowindow = new google.maps.InfoWindow({
content: '<p><?php echo $adr_apa; ?></p>'
});
infowindow.open(map, marker);
});
<?php } ?>
})();
});
</script><?php
echo '
<body>
<div id="map_canvas" style="width: 800px; height: 420px"></div>
</body>
Потому что вы объявляете переменные javascript маркера и опций столько раз, сколько у вас есть элементов 🙂
Речь идет не о картах Google, а о вашем JS, и браузер его не интерпретирует.
Переместите объявление переменной за пределы while
var marker, options;
<? php stuff ?>
Других решений пока нет …