我想在地图上显示多个标记,但它只有一个。当我检查控制台时,可以看到所有lat和long值。但只有一个标记。
这段代码是我的PHP代码。
$query="SELECT lat, lng, FROM mytable limit 5 offset $offset";
$result = pg_exec($dbconn, $query);
$response = pg_fetch_all($result);
$data=json_encode($response, JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);
$data1 = json_decode($data, true);
这段代码是我的js代码和php代码。
function initMap() {
<?php for($i=0; $i<5; $i++){ ?>
var myLatLng = {lat:<?=$data1[$i]['lat']?>, lng:<?=$data1[$i]['lng']?>};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 19,
center: myLatLng
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Hello World!'
});
<?php } ?>
}
答案 0 :(得分:2)
我认为这是因为你覆盖你的地图,把地图init放在循环之外。
function initMap() {
var center = {lat: -34.397, lng: 150.644};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 19,
center: center
});
<?php for($i=0; $i<5; $i++){ ?>
var myLatLng = {lat:<?=$data1[$i]['lat']?>, lng:<?=$data1[$i]['lng']?>};
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Hello World!'
});
<?php } ?>
}