Google maps api v3 Marker已添加,但地图未缩放

时间:2014-04-04 21:00:29

标签: javascript google-maps google-maps-api-3

有一天,我遇到了这个不知道如何从ajx和json获取数据的问题,这是我自己解决的问题,这里是我完整代码的链接

How to get Coordinates from database on server, on checkbox checked and show on googlemaps?

这是客户端代码,它通过ajax请求获取坐标,并在选中复选框时在Google地图上添加标记,并在取消选中时将其删除。

function get_coordinates(checkbox){
    var v_id=checkbox.id;
    if(checkbox.checked){
        var hr = new XMLHttpRequest();
        hr.open("POST", "fetch_coordinates.php", true);
        hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        hr.onreadystatechange = function() {
            if(hr.readyState == 4 && hr.status == 200) {
                var data = JSON.parse(hr.responseText);
                var lat=data.loc.lat;
                var lon=data.loc.lon;
                addmarker(lat,lon,v_id);
            }
        }
         hr.send("id="+v_id);   
    } else{
        var mark = markers[v_id]; // find the marker by given id
        mark.setMap(null);
        delete markers[v_id];
    }    
}
function addmarker(lat,lon,v_id){
    var marker = new google.maps.Marker({
        id: v_id,
        position: new google.maps.LatLng(lat, lon),
        zoom: 8,    //not working
        map: map,
        title: 'Vehicle No: '+v_id
    });
    markers[v_id] = marker;

}

现在当我添加一个标记时,我将缩放级别设置为8,但是地图不会缩放,我不知道为什么但是它静止不动,只是添加一个标记,但不是缩放。那是什么?

1 个答案:

答案 0 :(得分:0)

标记没有zoom - 属性,添加此属性将无效。

您必须设置地图的属性:

map.setOptions({center:new google.maps.LatLng(lat, lon),zoom:8});