Estoy utilizando esta solución para obtener el alcance de una consulta. Me devuelve todas las características geométricas al cliente, donde puedo calcular la extensión de todas las geometrías individuales. Dado que estas características pueden ser polilíneas y polígonos, este es un proceso muy costoso. ¿Existe una forma de formular la consulta de manera que sólo se devuelva la extensión?
app.filter.on("zoom-to-features", () => {
console.log("set map extent to include all annotations matching this criteria");
all(common.GeoUtil
.getFeatureLayers(app.map)
.map(l => {
var query = new EsriQuery();
query.returnGeometry = true;
query.outFields = [];
query.where = where;
return l.queryFeatures(query);
})).then(results => {
var features = <Array<{ features: Array<esri.Graphic> }>><any>results;
var extents = features.map(result =>
result.features
.map(f => common.GeoUtil.getExtent(f.geometry))
.reduce((a, b) => a ? a.union(b) : b, null));
var extent = extents.reduce((a, b) => a ? b ? a.union(b) : a : b, null);
extent && app.map.setExtent(extent);
});
});