Hi everyone,
I have the following issue :
I don't get to set the extent of my webmap.
Please find below the code used.
I tried many ways: using graphics, feature layers, document element,.
The code does a spatial selection based on a dropdownlist value:
Please kindly advice where could be the error.
"
var mapid = "bd44b693be444c3a9a4a620661e7ce66";
var map = new esri.Map("mapDiv");
var mapDeferred = esri.arcgis.utils.createMap(mapid, "mapDiv").then(function(response)
{
map = response.map;
//Define a feature layer
var ZonesQueryFeatureLayer = new esri.layers.FeatureLayer("http://10.10.1.108:6080/arcgis/rest/services/ZS_MapDoc/FeatureServer/5", {
id: 'ZonesQueryFeatureLayer',
mode: esri.layers.FeatureLayer.MODE_SELECTION,
outFields: ["*"]
});
response.map.addLayer(TCAZonesQueryFeatureLayer);
//connect event to onchange of a zone selection from the dropdownlist(Ref. ResultQID)
dojo.connect(dojo.byId('#ResultQID'), "onchange", function(evt) {
console.log("option changed to: " + evt.target.value);
ZonesQueryFeatureLayer.clearSelection();
var selectQuery = new esri.tasks.Query();
selectQuery.where = "Zone_Name LIKE '"+ evt.target.value +"'";
selectQuery.outFields = ["*"];
ZonesQueryFeatureLayer.selectFeatures(selectQuery, esri.layers.FeatureLayer.SELECTION_NEW, function (features) {
//after highlighting feature (or not), zoom to feature to show detailed map
if (features !== undefined && features.length !== 0) {
//should be only one result returned, so using first array value [0]
ZonesQueryFeatureLayer.getMap().setExtent(features[0].geometry.getExtent(), true);
// I also tried:
//map.setExtent(features[0].geometry.getExtent(), true);
//mapDeferred.setExtent(features[0].geometry.getExtent(), true);
//document.getElementById("mapDiv").setExtent(features[0].geometry.getExtent(), true);
}
else {
alert("zone not found/Please select a proper Zone.")
}
});
dojo.stopEvent(evt);
});
});
}
"