我有一堆纬度&存储在MySQL中的经度标记,我只需使用PHP即可检索。我使用Javascript与Google maps API v3进行交互,并将数组中的多个标记作为虚拟对象加载,每个标记也都有一个infowindow。
人们建议将MySQL中的数据传递到javascript对象/数组以与google maps api v3一起使用的最佳方法。
答案 0 :(得分:0)
通过使用PHP while循环从DB获取值,并将值存储在变量中,如下所示
$location .= '['. $row['latitude'] . ',' . $row['longitude'] . ',"' . $row['city'] . '","' . $row['state'] . '"],' ;
在Javascript中,将PHP变量分配给Javascript变量,如下所示。
var locations = [<?php echo isset($location)?$location:''; ?>];
var len = locations.length;
for (i = 0; i < len; i++) {
var image = 'GIVE HERE THE PATH OF IMAGE';
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
icon: image
});
google.maps.event.addListener(marker, 'mouseover', (function(marker, i) {
return function() {
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker, i));
}
上面的代码将为地图中的每个标记提供多个标记和信息框。
答案 1 :(得分:0)
如果您有一个包含大量标记的PhP数组,例如:
Array
(
[0] => Array
(
["lat"]=> <value>
["lng"]=> <value>
["info"]=> <value>
)
[1] => Array
(
["lat"]=> <value>
["lng"]=> <value>
["info"]=> <value>
)
[2] => ...
[3] => ...
)
使用JSON是一个很好的解决方案:
要将数组从PhP转换为JSON:
json_encode($myMarkersArray, JSON_NUMERIC_CHECK)