有一天,我遇到了这个不知道如何从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,但是地图不会缩放,我不知道为什么但是它静止不动,只是添加一个标记,但不是缩放。那是什么?
答案 0 :(得分:0)
标记没有zoom
- 属性,添加此属性将无效。
您必须设置地图的属性:
map.setOptions({center:new google.maps.LatLng(lat, lon),zoom:8});