**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
这个问题似乎与help center中定义的范围内的编程无关。
2天前关闭。
Improve this question
我试图显示标记为每个地址我在我的数据库.我存储在javascript数组的地址,和地理编码,显示在Map上的标记为每个人.地址被存储在数组中,但不幸的是只有最后一个地址得到一个标记在Map上.
<script>
var addresses = [];
<?php
if(is_array($fetchData)){
$sn=1;
foreach($fetchData as $data){
$post = $data['post'];
$city = $data['city'];
$street = $data['street'];
$number = $data['number'];
?>
var address = '<?php echo $data['post'] . ' ' . $data['city'] . ' ' . $data['street'] . ' ' . $data['number']; ?>';
addresses.push(address);
var geocoder;
var map;
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
});
var i = 0;
geocoder[i] = new google.maps.Geocoder();
codeAddress(geocoder, map);
}
function codeAddress(geocoder, map) {
geocoder.geocode({'address': address}, function(results, status) {
if (status === 'OK') {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
i++;
<?php
$sn++;}}else{ ?>
<?php
}?>
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=MyKey&callback=initMap">
</script>
我在考虑索引'地理编码器'和做'i++;',但它还没有工作。
1条答案
按热度按时间ih99xse11#
通常情况下,你会运行db查询并将PHP结果转换为可以在Javascript中处理的变量。JSON非常适合此目的-易于在PHP中生成,并且易于在Javascript中处理。
你可能会考虑像这样的方法,未经测试的例子: