谷歌地图API(使用gmapsjs),setCenter抛出“未定义不是一个函数”?

时间:2014-07-19 10:45:46

标签: javascript google-maps google-maps-api-3

我尝试使用gmapjs设置地图中心。当我调整窗口大小时,我得到:

  

未捕获的TypeError:undefined不是函数

这里是resize事件的地图和监听器:

$(function () {
    var holder = $('#map-property'),
        lat = 46.534820,
        lng = 13.024809;

    var map = new GMaps({
        div: '#'+holder.attr('id'),
        lat: lat,
        lng: lng,
        zoom: 14,
        scrollwheel: false,
        panControl : false,
        streetViewControl: false,
        mapTypeControl: false,
        draggable: true,
        disableDoubleClickZoom: true,
        zoomControlOptions:{
            style:google.maps.ZoomControlStyle.SMALL
        }
    })
    .addMarker({
        lat: 46.534820,
        lng: 13.024809,
        title: 'Da Matteo',
        icon: "/img/gmaps-marker.png"
    });

    $(window).on('resize', function() {
        map.setCenter(lat, lng); // here is the error!
    });
});

AFAIK setCenter功能是:

this.setCenter = function(lat, lng, callback) {
  this.map.panTo(new google.maps.LatLng(lat, lng));

  if (callback) {
    callback();
  }
};

1 个答案:

答案 0 :(得分:2)

问题是,map = new Gmaps().addMarker()返回标记对象,而不是地图。因此它没有setCenter方法。

您可以执行以下操作:

var map = new Gmaps({...})
map.addMarker({...})

然后写下活动。