我试图在访客移动地图时通过Json添加标记。由于某种原因,未捕获moveend和/或未触发onClickCallback函数。我在哪里错了。
google.maps.event.addListener(map, "moveend", function() {
var bounds = this.getBounds();
onClickCallback(map);
});
function onClickCallback(map) {
var bounds = map.getBounds();
// clearOverlays();
$.getJSON( 'http://skiweather.eu/gmap4/markers/index.php', {
swLat: bounds.getSouthWest().lat(), swLon: bounds.getSouthWest().lng(),
neLat: bounds.getNorthEast().lat(), neLon: bounds.getNorthEast().lng()}, function(data) {
$.each( data.markers, function(i, marker) {
// Define Marker properties
var image = new google.maps.MarkerImage(marker.smallimg,
// This marker is 129 pixels wide by 42 pixels tall.
new google.maps.Size(42, 42),
// The origin for this image is 0,0.
new google.maps.Point(0,0),
// The anchor for this image is the base of the flagpole at 18,42.
new google.maps.Point(18, 42)
);
$('#map').gmap('addMarker', { 'id' : marker.id,
'position': new google.maps.LatLng(marker.latitude, marker.longitude),
'icon' : image,
'bounds': true
}).click(function() {
$('#map').gmap('openInfoWindow', { 'content': '<h2>' + marker.loc + '</h2><img src="' + marker.smallimg + '" class="my-map-marker" />'
}, this);
});
});
});
}
google.maps.event.addDomListener(window, 'load', initialize);
答案 0 :(得分:4)
google.maps V3中不再提供moveend
事件,请改用dragend
。
试试这个:
google.maps.event.addListener(map, "dragend", function() {
var bounds = this.getBounds();
onClickCallback(map);
});
答案 1 :(得分:2)
答案 2 :(得分:0)
来自groops google的一篇文章。
google.maps V3在整个地图上缺少一些重要的V2事件:
mousemove
mouseover
mouseout
movebegin
moveend
似乎bounds_changed
可以提供帮助。另请参阅用户 sabotero 关于dragend
的评论。