我在使用谷歌地图时遇到问题。我将地图 JS 加载到一个文件中,在该文件中我使用 ajax(和 jquery)附加了一个模式 div,其中包含地图。我得到了类似下图的东西:
但是,当我“关闭”模式(删除 div 并因此删除地图)并尝试再次打开它时,会出现问题:
除了看起来不完整之外,看起来地图认为它的左上角是 div 之外的一些像素。我向您保证,因为当我尝试移动地图时,它会刷新其内容并删除地图的“不可见”(在这种情况下是不幸可见)部分。我将在这里留下用于显示地图的代码(虽然它非常简单)。
var marker = null, geocoder, latLng, map = null;
geocoder = new google.maps.Geocoder();
latLng = new google.maps.LatLng(41.3865, 2.1648);
var myOptions = {
zoom: 16,
center: latLng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: false
};
if(map === null) {
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
function clearOverlays() {
if (marker !== null) {
marker.setMap(null);
marker = null;
}
}
function getPosition(address, title) {
clearOverlays();
geocoder.geocode({
address : address,
region : 'es'
},
function (results, status) {
if (status === google.maps.GeocoderStatus.OK) {
var result = results[0];
latLng = result.geometry.location
marker = new google.maps.Marker({
'title': title,
'map': map,
'position': latLng,
'animation': google.maps.Animation.DROP
});
map.setCenter(latLng);
}
}
);
}
getPosition(place.address, place.title);
为了这个例子,让我们假设place
一个对象包含address
和title