我有这样一段代码,它从数据库中获取详细信息,并将其放入php数组中,然后将该数组传递给javascript以生成Google地图:
<?php
$query='select name,longitude,latitude from maps';
$result=mysql_query($query) or die();
$num_rows=mysql_num_rows($result);
if($num_rows > 0){
for($i=0;$i<$num_rows;$i++){
$row=mysql_fetch_row($result);
$location[]= $row[0].', '.$row[2].', '.$row[1].','.($i+1);
}
//this creates the following array
array(4) {
[0]=> string(44) "Travel agent Marko, 42.5624525, 27.5263493,1"
[1]=> string(44) "Travel agent Marko, 42.5632957, 27.5267364,2"
[2]=> string(54) "Travel agent 'Planet Travel', 42.5609811, 27.5263934,3"
[3]=> string(56) "Travel agent 'Planet Travel' 2, 42.5642942, 27.5266121,4"
}
?>
<script type="text/javascript">
var loc = <?php echo json_encode($location); ?>;
var locations = [
[loc]
];
var map = new google.maps.Map(document.getElementById('googlemap'), {
zoom: 10,
center: new google.maps.LatLng(42.5624525, 27.5263493),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
alert(locations.length);
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
</script>
<?php
}
?>
我的问题是为什么地图上没有标记?没有返回错误,但也没有标记。我必须在php循环中移动javascript代码吗?如果我通知locations.length,我得到1作为locations.length。为什么js将位置数组计算为1个位置?提前谢谢!
更改此项:
var loc = <?php echo json_encode($location); ?>;
var locations = [
[loc]
];
为此:
var locations = <?php echo json_encode($location); ?>;
循环应该是:
for (i = 0; i < locations.length; i++) {
loc_array = locations[i].split(",");
marker = new google.maps.Marker({
position: new google.maps.LatLng(loc_array[1], loc_array[2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(loc_array[0]);
infowindow.open(map, marker);
}
})(marker, i));
}
我有代码允许我输入带有纬度和经度的位置名称,然后地图用标记显示位置。 我遇到的问题是,我希望地图显示所有位置,每个位置都有自己的标记。 下面是我用来获取地图上显示的一个位置的代码 非常感谢您的帮助 我没有错误只是显示了一个位置,我已添加到Firebasedatabase
问题内容: 我想在Google Maps android上显示带有多个标记的位置,问题是当我运行我的应用程序时,它只显示一个位置/标记,这是我的代码: 我不知道我的错在哪里,希望有人能帮助我解决我的问题,非常感谢你 问题答案: 用这个: 或者,您也可以使用以下命令: 其中 纬度 和 经度 是存储在数组列表中的具有不同名称的字符串.....
问题内容: 尝试通过sql数据库中的经/纬度坐标间隔移动标记/地图。 在moveMarkerMap()中设置新的google.maps.LatLng(14,41)会移动它,并且returnData显示在alert()中,但与moveMarkerMap()一起使用时标记不会移动 从ajax返回的字符串格式正确;(9.624672,7.242244)如alert()所示,因此不确定为什么它不起作用。
长话短说,我想更新地图上的标记仅使用传感器数据,但我在API中找不到允许我更新地图上的纬度/经度的库函数。根据我计算的新纬度/经度,有什么东西可以做到这一点吗?