检查DistanceWidget的标记dragend

时间:2015-01-28 05:52:24

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

DistanceWidget:

function DistanceWidget(map,markers) {
    this.set('map', map);
    this.set('position', map.getCenter());
    this.set('markers',markers);
    // MARKER CENTER
    var marker = new google.maps.Marker({
        draggable: true,
        icon: {
            url: "/public/img/move.png",
            size: new google.maps.Size(20, 20),
            anchor: new google.maps.Point(10, 10)
        },
        title: 'Di chuyển'
    });
    marker.bindTo('map', this);
    marker.bindTo('position', this);
    var me = this;
    var radiusWidget = new RadiusWidget(markers);
    this.bindTo('circle', radiusWidget);
    radiusWidget.bindTo('map', this);
    radiusWidget.bindTo('markers', this);
    radiusWidget.bindTo('center', this, 'position');
    this.bindTo('distance', radiusWidget);
    this.bindTo('bounds', radiusWidget);
    this.bindTo('radius', radiusWidget);
}

RadiusWidget:

RadiusWidget.prototype.center_changed = function() {
    var bounds = this.get('bounds');
    if (bounds) {
        var lng = bounds.getNorthEast().lng();
        var position = new google.maps.LatLng(this.get('center').lat(), lng);
        this.set('sizer_position', position);
    }
};

RadiusWidget.prototype.checkCenterDragend = function(){
    //TODO SOMETHING HERE
}

我在DistanceWidget中移动(拖动)MARKER CENTER,center_changed原型将更新。太棒了。

问题:如何检查MARKER CENTER的事件标记以更新checkCenterDragend原型中的内容。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

只需调用dragend - 处理程序中的方法:

将其放在行var radiusWidget = new RadiusWidget(markers);

之后
google.maps.event.addListener(marker, 'dragend', function() {
  radiusWidget.checkCenterDragend.call(radiusWidget,this.getPosition());
});

传递给函数的第一个参数将是marker-position(中心)