105 lines
2.6 KiB
JavaScript
105 lines
2.6 KiB
JavaScript
mxn.register('mapquest', {
|
|
|
|
Geocoder: {
|
|
|
|
init: function() {
|
|
var me = this;
|
|
MQA.withModule('geocoder', function() {});
|
|
},
|
|
|
|
geocode: function(address, rowlimit){
|
|
var me = this;
|
|
var return_location = {};
|
|
|
|
var options = {};
|
|
options.maxResults = rowlimit;
|
|
options.thumbMaps = false;
|
|
|
|
/* Specifying Country
|
|
* The geocoding target country is specified using the "adminArea1" or "country"
|
|
* request parameter (Refer to the Locations documentation). Country designation
|
|
* is currently not supported for single-line addressing. The United States is
|
|
* assumed for all single-line addresses.
|
|
*/
|
|
|
|
MQA.Geocoder.geocode(address, options, null, function(results) {
|
|
me.geocode_callback(results);
|
|
});
|
|
},
|
|
|
|
geocode_callback: function(response){
|
|
var results = response.results[0].locations;
|
|
var places = [];
|
|
|
|
for (i = 0; i < results.length; i++) {
|
|
place = results[i];
|
|
var return_location = {};
|
|
|
|
switch ("Country") {
|
|
case place.adminArea1Type:
|
|
return_location.country = place.adminArea1;
|
|
break;
|
|
case place.adminArea2Type:
|
|
return_location.country = place.adminArea2;
|
|
break;
|
|
case place.adminArea3Type:
|
|
return_location.country = place.adminArea3;
|
|
break;
|
|
case place.adminArea4Type:
|
|
return_location.country = place.adminArea4;
|
|
break;
|
|
case place.adminArea5Type:
|
|
return_location.country = place.adminArea5;
|
|
break;
|
|
}
|
|
|
|
switch ("State") {
|
|
case place.adminArea1Type:
|
|
return_location.region = place.adminArea1;
|
|
break;
|
|
case place.adminArea2Type:
|
|
return_location.region = place.adminArea2;
|
|
break;
|
|
case place.adminArea3Type:
|
|
return_location.region = place.adminArea3;
|
|
break;
|
|
case place.adminArea4Type:
|
|
return_location.region = place.adminArea4;
|
|
break;
|
|
case place.adminArea5Type:
|
|
return_location.region = place.adminArea5;
|
|
break;
|
|
}
|
|
|
|
switch ("City") {
|
|
case place.adminArea1Type:
|
|
return_location.locality = place.adminArea1;
|
|
break;
|
|
case place.adminArea2Type:
|
|
return_location.locality = place.adminArea2;
|
|
break;
|
|
case place.adminArea3Type:
|
|
return_location.locality = place.adminArea3;
|
|
break;
|
|
case place.adminArea4Type:
|
|
return_location.locality = place.adminArea4;
|
|
break;
|
|
case place.adminArea5Type:
|
|
return_location.locality = place.adminArea5;
|
|
break;
|
|
}
|
|
|
|
return_location.street = place.street;
|
|
return_location.postcode = place.postalCode;
|
|
|
|
return_location.point = new mxn.LatLonPoint(place.latLng.lat, place.latLng.lng);
|
|
places.push(return_location);
|
|
}
|
|
|
|
if (places.length > this.row_limit) {
|
|
places.length = this.row_limit;
|
|
}
|
|
this.callback(places);
|
|
}
|
|
}
|
|
}); |