显示地图时遇到问题。 我有一组标记(来自db通过php和json),我想要相对于所有标记应用的地图的中心和缩放;这就是为什么我没有在地图上设置中心和缩放并使用LatLngBounds对象。事情是,它不起作用。
这是javascript代码:
var jsonURL="http://localhost/gpsdev/db2json.php";
var map;
function init(){
var options = {
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl:false,
scaleControl:true,
streetViewControl:false,
zoom:12,
center: new google.maps.LatLng(-25.973728,32.582745)
};
var mapBounds= new google.maps.LatLngBounds();
map = new google.maps.Map(document.getElementById('map'), options);
$.getJSON(jsonURL,{cli:"1"}, function(data){
for (var i = 0; i < data.length; i++) {
var point = new google.maps.LatLng(data[i].Latitude,data[i].Longitude);
mapBounds.extend(point);
new google.maps.Marker({
position: point,
map: map,
title:data[i].PlateNR
});
}
});
map.fitBounds(mapBounds);
}
window.onload=init;
如果我删除缩放和中心它不起作用。这是json上输入的javascript:
[
{\"VehicleID\":\"1\",\"ClientID\":\"1\",\"PlateNR\":\"MMA-01-01\",\"Type\":\"Ligeiro\",\"Latitude\":\"-25.973728\",\"Longitude\":\"32.582745\",\"Velocity\":\"0.000\",\"Ignition\":\"0\",\"ClientName\":\"Sergio\"},
{\"VehicleID\":\"1\",\"ClientID\":\"1\",\"PlateNR\":\"MMA-01-01\",\"Type\":\"Ligeiro\",\"Latitude\":\"-25.972456\",\"Longitude\":\"32.578968\",\"Velocity\":\"10.000\",\"Ignition\":\"1\",\"ClientName\":\"Sergio\"},
{\"VehicleID\":\"1\",\"ClientID\":\"1\",\"PlateNR\":\"MMA-01-01\",\"Type\":\"Ligeiro\",\"Latitude\":\"-25.970083\",\"Longitude\":\"32.580879\",\"Velocity\":\"80.000\",\"Ignition\":\"1\",\"ClientName\":\"Sergio\"},
{\"VehicleID\":\"1\",\"ClientID\":\"1\",\"PlateNR\":\"MMA-01-01\",\"Type\":\"Ligeiro\",\"Latitude\":\"-25.968191\",\"Longitude\":\"32.577724\",\"Velocity\":\"90.000\",\"Ignition\":\"1\",\"ClientName\":\"Sergio\"}
]
这里有什么问题?
答案 0 :(得分:1)
$.getJSON(jsonURL,{cli:"1"}, function(data){
for (var i = 0; i < data.length; i++) {
var point = new google.maps.LatLng(data[i].Latitude,data[i].Longitude);
mapBounds.extend(point);
new google.maps.Marker({
position: point,
map: map,
title:data[i].PlateNR
});
}
// this is where you should call map.fitBounds()
map.fitBounds(mapBounds);
});
// move the following line from its existing location to inside $.getJSON call
// map.fitBounds(mapBounds);
答案 1 :(得分:0)
查看本教程:http://www.svennerberg.com/2008/11/bounding-box-in-google-maps/,但请注意不要使用最新的API(v3)。