【发布时间】:2018-01-25 07:36:04
【问题描述】:
我如何在 Codeigniter 的谷歌地图中显示多个位置。我有一个数组,包括纬度和经度。我想在地图中显示所有位置。
这是我的 $query 数组从控制器传递到视图页面,
Array (
[0] => stdClass Object ([lat] => 37.45360256419911 [lng] => -122.16470718383789)
[1] => stdClass Object ([lat] => 37.45455646705577 [lng] => -122.1653938293457)
[2] => stdClass Object ([lat] => 37.451543303913226 [lng] => -122.16745376586914)
)
我想在我的地图上显示所有这 3 个位置,现在它只标记 1 个位置。
<script>
var map;
var marker;
var infowindow;
var messagewindow;
function initMap() {
<?php
foreach($query as $row){
$lat=$row->lat;
$lng=$row->lng;
?>
var location = {lat: <?php echo $lat; ?>, lng: <?php echo $lng; ?>};
map = new google.maps.Map(document.getElementById('map'), {
center: location,
zoom: 13
});
var marker = new google.maps.Marker({
position: location,
map: map,
});
infowindow = new google.maps.InfoWindow({
content: document.getElementById('form')
});
messagewindow = new google.maps.InfoWindow({
content: document.getElementById('message')
});
google.maps.event.addListener(map, 'click', function(event) {
marker = new google.maps.Marker({
position: event.latLng,
map: map
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
});
<?php
}
?>
}
【问题讨论】:
-
您可以使用此解决方案解决您的问题
https://stackoverflow.com/questions/46093485/how-to-add-multiple-markers-in-google-map/46093758#46093758 -
请提供一个minimal reproducible example 来证明您的问题。发布的代码只有一个位置 (
var location)。 -
@geocodezip 在我的 $query 数组中,我在上面显示的不止一行。我想在我的 map.for 中显示所有位置,因为我使用了 foreach 循环。我放在foreach循环中的var lacation。在我尝试执行循环的代码中,我将获取数组中的所有值并标记每个位置。但它只标记一行
-
第二个请求。请提供一个 minimal reproducible example 来证明您的问题(最好是 StackOverflow 代码 sn-p)。我们无法判断您的 PHP 在做什么,我们没有您的数据库。
标签: php codeigniter google-maps