根据API Feature Table API默认情况下syncSelection
和zoomToSelection
属性均为true,所以我认为这意味着当我选择一行时,地图会放大所选要素但这似乎不是真的。在Feature Table Sample处的示例中,地图以所选要素为中心,但缩放级别不会更改。有没有办法让地图放大所选的功能?
答案 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 Sample中ZoomToSelectedFeature'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);
});
}