0

我正在开发一个使用 ammaps 的应用程序。我根据经度和纬度值在地图上定位了许多点。我通过使用以下代码实现了单击功能:

map.addListener("clickMapObject", function (event) {
                        $scope.$apply(function(){
                            $scope.colorPoints();
                            $scope.selectedRow = event.mapObject.idBase;
                        });
                });

我想实现双击的功能。谁能告诉我如何在 amMaps 中做到这一点。

4

1 回答 1

1

从技术上讲,amMap 不支持双击事件。但是,您可以使用clickMapObject事件来模拟它。

为此,您需要忽略第一次点击。如果后续clickMapObject发生在 500ms 左右,则注册为双击。

像这样的东西:

map.addListener( "clickMapObject", function( event ) {
  if ( false !== map.clickedObject && map.clickedObject === event.mapObject ) {
    // doubleckick
    map.clickedObject = false;
    $scope.$apply( function() {
      $scope.colorPoints();
      $scope.selectedRow = event.mapObject.idBase;
    } );
  } else {
    clearTimeout( map.clickedObjectTimeout );
    map.clickedObject = event.mapObject;
    map.clickedObjectTimeout = setTimeout( function() {
      map.clickedObject = false;
    }, 500 );
  }
} );
于 2016-08-13T08:59:48.387 回答