移动谷歌地图中心点点击

Move google map center point onclick

本文关键字:中心点 谷歌地图 移动      更新时间:2023-09-26

我已经初始化了Google Maps load函数,它工作得很好。也有多个带有集群的标记。我没有在这里放标记和集群代码。这些都是标准代码。我的代码:

jQuery(document).ready(function(){
    initialize();
});
function initialize() {
    var center = new google.maps.LatLng(59.875405, 10.842099);
    var zoom = 10;
    var map = new google.maps.Map(document.getElementById('map-canvas'), {
        zoom: zoom,
        center: center,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });
}
function mapAnimate(){
    var map = google.maps.Map(document.getElementById("map-canvas"));
    google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
        window.setTimeout(function() {
            map.panTo(new google.maps.LatLng(58.9633, 5.7189));
        }, 500);
    });
}

然后我想将地图移动到另一个中心位置,而不重新生成地图。有一个链接调用函数mapAnimate()

HTML:

<a href="javascript:void(0);" onclick="mapAnimate()">test</a>

但是它不起作用。我得到这样的错误:

TypeError: c[Eb] is not a function......

实际上我没有得到地图实例

在函数外声明map变量。那应该可以了。

jQuery(document).ready(function(){
    initialize();
});
var map;
function initialize() {
    var center = new google.maps.LatLng(59.875405, 10.842099);
    var zoom = 10;
    map = new google.maps.Map(document.getElementById('map-canvas'), {
        zoom: zoom,
        center: center,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });
}
function mapAnimate(){
    google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
        window.setTimeout(function() {
            map.panTo(new google.maps.LatLng(58.9633, 5.7189));
        }, 500);
    });
}

但是,如果您从单击事件调用mapAnimate()函数,我不明白为什么您需要地图对象上的侦听器。