使用php创建自定义的谷歌地图


Using php to create customized google map

我正在尝试使用我在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>

您是否在 markers 变量上检查过此脚本的输出?这似乎与格式化的数字输出有关。

JavaScript 需要国际格式的数字,句点作为小数点分隔符:10.2

在某些地方,服务器配置为使用逗号作为小数分隔符,因此脚本的输出将返回数字数组,而不是带有小数位的数字:

[[ 1,00012, 1,45678, 'name' ]]

此外,在markers变量声明的末尾,在右方括号之前还有一个额外的逗号]