I dont think you need that loop. The map extent is getting set for each feature, with the last ( or second to last) feature getting zoomed to just because its called last. How about this? i just called your setExtent logic on the result passed into the function? Edit fiddle - JSFiddle var locationDetails = function(result) { mapResults(result); var widget = registry.byId('resultsContainer1'); widget.performTransition('mapView', 1, "slide"); map.setExtent(result.geometry.getExtent(), true); var result = result; result.setSymbol(sfs); }
... View more