我正在尝试修改this plugin以获取Google地图的缩放级别。
我有这段代码在我以前的Google Map初始化版上运行良好,但现在它似乎没有做它应该做的工作:
var ZoomLevel = 14; // as a Default value
google.maps.event.addListener(this.map, 'zoom_changed', function(ee) {
google.maps.event.addListenerOnce(this.map, 'bounds_changed', function(e) {
ZoomLevel = this.map.getZoom();
});
});
我正在添加initMap()
插件的$.geocomplete()
方法。
我的HTML文档的所有范围都提供了此ZoomLevel
变量,但它不会随时更新,并且不会触发这两个zoom_changed
和bounds_changed
事件我是否改变了界限,缩放,标记位置等等。
关于如何在此插件中实现此功能以获取当前的缩放级别,我真的需要帮助。
答案 0 :(得分:1)
而不是跟踪缩放级别,您只需按需获取它。
$(<selector>).geocomplete('map').getZoom()
花了很多时间试图找出如何访问地图对象,这很简单......只是要求它!
答案 1 :(得分:0)
回调内部this
指的是触发事件的对象。
当我假设第一个监听器绑定的对象是google.maps.Map
- 实例时,这应该有效:
var ZoomLevel = 14; // as a Default value
google.maps.event.addListener(this.map, 'zoom_changed', function(ee) {
google.maps.event.addListenerOnce(this, 'bounds_changed', function(e) {
ZoomLevel = this.getZoom();
});
});
但是当缩放更改时,边界也会改变,因此您可以删除内部侦听器:
google.maps.event.addListener(this.map, 'zoom_changed', function(ee) {
ZoomLevel = this.getZoom();
});