Я настроил слушателей на «moveend», «zoomend» и «dragend», чтобы попробовать его.
GEvent.addListener(map, "moveend", function() { console.log('moveend'); });
GEvent.addListener(map, "zoomend", function() { console.log('zoomend'); });
GEvent.addListener(map, "dragend", function() { console.log('dragend'); });
Похоже, что moveend всегда срабатывает после «zoomend» или «dragend».
Однако ни одно событие не происходило более одного раза за раз. Может быть, вы случайно настроили двух одновременных слушателей. Вам не нужно использовать stopPropagation или cancelBubble.