我正在尝试使用我在sql数据库中使用的经度和纬度来创建自定义谷歌地图。所以我试图将这些结果直接放入我的地理编码器的jquery代码中。但它没有用。有没有人知道我怎么能这样做?我查了一切可能找不到答案。非常感谢你提前。这是我的代码:
<script type='text/javascript'>//<![CDATA[
var map;
var global_markers = [];
[<?php
include 'admin/dbconn.php';
$getLoc = mysql_query("SELECT * FROM EanHotels WHERE City = 'Acapulco'") or die(mysql_error());
while($row = mysql_fetch_array($getLoc)){
$name = $row['name'];
$lat = $row['Latitud'];
$lon = $row['Longitude'];
$address = $row['Address1'];
echo $lat;
echo $lon;
?>
var markers = [[<?php echo $lat ?>, <?php echo $lon ?>, '<?php echo $name ?>'], <?php } ?>
];
var infowindow = new google.maps.InfoWindow({});
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(40.77627, -73.910965);
var myOptions = {
zoom: 1,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
addMarker();
}
function addMarker() {
for (var i = 0; i < markers.length; i++) {
// obtain the attribues of each marker
var lat = parseFloat(markers[i][0]);
var lng = parseFloat(markers[i][1]);
var trailhead_name = markers[i][2];
var myLatlng = new google.maps.LatLng(lat, lng);
var contentString = "<html><body><div><p><h2>" + trailhead_name + "</h2></p></div></body></html>";
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: "Coordinates: " + lat + " , " + lng + " | Trailhead name: " + trailhead_name
});
marker['infowindow'] = contentString;
global_markers[i] = marker;
google.maps.event.addListener(global_markers[i], 'click', function() {
infowindow.setContent(this['infowindow']);
infowindow.open(map, this);
});
}
}
window.onload = initialize;
//]]>
</script>
答案 0 :(得分:1)
您是否在markers
变量上检查了此脚本的输出?这似乎与格式化的数字输出有关。
JavaScript期望国际格式的数字,句点为小数点分隔符:10.2
在某些地方,服务器配置为使用逗号作为小数分隔符,因此脚本的输出将返回一个数字数组,而不是带小数位的数字:
[[ 1,00012, 1,45678, 'name' ]]
此外,在markers
变量声明的末尾,在结束方括号]