谷歌地图API边界:在FF中运行而不是在Safari中运行?
问题描述:
我正在使用此代码来设置基于位置列表的谷歌地图的界限:谷歌地图API边界:在FF中运行而不是在Safari中运行?
奇怪的是,这是在Firefox中正常工作:地图平底锅和秤,以适应给定的位置。 在Safari中,地图载入太平洋的中间。
你能帮我吗?
感谢, 奥古斯托
LatLngList = []
var bounds = new google.maps.LatLngBounds();
function add_point_to_list(point) {
var lat = point.split(" ")[0]
var lng = point.split(" ")[1]
var Gpoint = new google.maps.LatLng(lat,lng)
LatLngList.push(Gpoint)
bounds.extend(Gpoint);
}
$.getJSON('/locations/user_map?id=' + <%= @user.id %>, function(data){
if (data.posts) {
for (var i in data.posts) {
var cord = (data.posts[i].lat + " " + data.posts[i].lng)
add_point_to_list(cord)
}
}
})
function map_init() {
var myOptions = {
zoom: 6,
mapTypeControl: false,
panControl: false,
zoomControl: false,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
mapTypeId: google.maps.MapTypeId.TERRAIN
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
//set map center
// map.setCenter(latlng);
map.fitBounds (bounds);
//updateMapOverlays();
//google.maps.event.addListener(map, 'idle', updateMapOverlays);
markerCluster = new MarkerClusterer(map, [], {gridSize: 70, maxZoom: 14, zIndex: 1});
geocoder = new google.maps.Geocoder();
refresh_overlays('/locations/user_map?id=' + <%= @user.id %>);
marker = new google.maps.Marker({
map: map,
icon: userMarkerImage,
position: latlng,
zIndex: 100
});
}
答
解决。 map init在尚未准备好时调用边界变量。
所以我把map.fitBounds(bounds);在AJAX回调结束时:
$.getJSON('/locations/user_map?id=' + <%= @user.id %>, function(data){
if (data.posts) {
for (var i in data.posts) {
var cord = (data.posts[i].lat + " " + data.posts[i].lng)
add_point_to_list(cord)
}
map.fitBounds (bounds);
}
})
检查Safari中的错误控制台。你有什么错误吗? – 2011-03-21 13:40:15
控制台正面无可见错误:( – Augusto 2011-03-21 13:50:48