0
我試圖在地圖上放置標記,並在用戶移動地圖時重新加載標記,但我遇到的問題很少。在谷歌地圖中,邊界始終返回相同的座標
- 當我試圖讓
bounds.getNorthEast();
&bounds.getSouthWest();
首先,我得到了相同的緯度/經度,我不明白爲什麼。 - 其次,當我移動地圖的
bounds.getNorthEast();
&bounds.getSouthWest();
回報總是同樣的事情
這裏是我的代碼:
$(document).ready(function() {
function initialize() {
var bounds = new google.maps.LatLngBounds();
var latLng = new google.maps.LatLng(33.76, -84.39);
var myMapOptions = {
sensor: true,
mapTypeControl: true,
zoom: 14,
center: new google.maps.LatLng(33.76, -84.39),
rotateControlOptions: false,
panControl: false,
scrollwheel: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var infowindow = new google.maps.InfoWindow({
disableAutoPan : false,
});
var map = new google.maps.Map(document.getElementById('map_newsfeed'), myMapOptions);
bounds.extend(latLng);
google.maps.event.addListener(map, 'idle', function(ev){
var ne = bounds.getNorthEast();
var sw = bounds.getSouthWest();
debugger
$.ajax({
url: '/api/v1/building_permits/geo_bbox/'+ne.e+','+ne.d+'/'+sw.e+','+sw.d,
success: function (json) {
for (var i = 0; i < json.length; ++i) {
debugger
var latLng = new google.maps.LatLng(json[i].latitude, json[i].longitude);
bounds.extend(latLng);
var marker = new google.maps.Marker({position: latLng});
attachInfoWindows(marker, map, infowindow, json[i].latitude, json[i].longitude)
map.fitBounds(bounds);
}
}
});
});
}
function attachInfoWindows(marker, map, infowindow, lat, lng) {
google.maps.event.addListener(marker, 'click', function() {
var lat1 = lat, lng2 = lng;
$.ajax({
url: '/api/v1/building_permits/'+lat1+'/'+lng2,
async: false,
success: function (json) {
infowindow.setContent(json);
infowindow.open(marker.get('map'), marker);
//map.panTo(marker.getPosition());
}
});
});
}
google.maps.event.addDomListener(window, 'load', initialize);
});
感謝。如果我理解正確,'map.fitBounds(bounds);'是將地圖適合所有標記的權利? – bl0b
它放大並居中地圖以顯示其參數中的邊界。 – geocodezip
因此,在這種情況下,由於用戶應該放大/縮小,移動視口我應該刪除它? – bl0b