在功能表上选择功能时,地图不会缩放

时间:2016-06-20 18:38:41

标签: arcgis-js-api

根据API Feature Table API默认情况下syncSelectionzoomToSelection属性均为true,所以我认为这意味着当我选择一行时,地图会放大所选要素但这似乎不是真的。在Feature Table Sample处的示例中,地图以所选要素为中心,但缩放级别不会更改。有没有办法让地图放大所选的功能?

2 个答案:

答案 0 :(得分:1)

您可以使用道场aspect进行缩放。它会使您应用程序中map.centerAt的所有调用也进行缩放,但在这种情况下,假设应用程序很简单,这可能是您的最佳选择。像这样:

    aspect.after(map, "centerAt", function(target, m) {
     map.centerAndZoom(m[0], 16);
     return target;
    }.bind(this));

不要忘记在您的AMD套餐中加入dojo/aspect

答案 1 :(得分:1)

我确信Gavin的答案有效但我最后使用Feature Table SampleZoomToSelectedFeature's菜单选项中的代码,如下所示。 (ROUTE_ID是所选要素的属性)。

myFeatureTable.on("row-select", function(evt){
    zoomToRoute(evt[0].data.ROUTE_ID);
    });

function zoomToRoute(routeId){
  var query = new Query();
  query.returnGeometry = true;
  query.outFields = [ "*" ];
  query.where = "ROUTE_ID = '" + routeId + "'" ;
  routeFeature.selectFeatures(query, FeatureLayer.SELECTION_NEW, function(features){
        var extent = graphicsUtils.graphicsExtent(features).expand(1.25); 
        map.setExtent(extent);
    });
}