I'm using locator.addressToLocations to geocode an intersection name. My code is working great provided that the intersection name is valid and exists. However, if the address in invalid, the locator simply strips the address and geocodes the city and state. I'd like to catch these cases and handle them myself. (i.e. "Broadway & NoName St, Denver, CO could not be found") I can certainly identify cases where the address is empty in the candidate, but I can't find any reference to the original address I was trying to geocode while I'm in the showResults() function.Suggestions?Thanks,Peterelevant snippet:
function showAddress(aAddress, aWeight, aText) {
lLocator.outSpatialReference = lMap.spatialReference;
var options = {
address:{ "SingleLine":aAddress },
outFields:["Loc_name","Match_addr"]
}
lLocator.addressToLocations(options);
}
function showResults(candidates) {
try {
var candidate;
dojo.every(candidates, function (candidate) {
console.log(candidate.score + "|" + candidate.attributes.Match_addr);
// Right here, I'd like to say, if (candidate.address == ""){alert("Bad address: " + candidate.attributes.Request_Address);}
// But Request_Address isn't something that exists. How do I get it?
if (candidate.score > 80) {
...
}
function initMap() {
lMap = new esri.Map("MyMapDiv", {
basemap:"streets", center:[-93.5, 41.431], zoom:5
});
lLocator = new esri.tasks.Locator("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer");
dojo.connect(lLocator, "onAddressToLocationsComplete", showResults);
showAddress( "Broadway & NoName St, Denver, CO", 30, "This is the spot" );
}