Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NeXTs/6056384 to your computer and use it in GitHub Desktop.
Save NeXTs/6056384 to your computer and use it in GitHub Desktop.
function getHumanAddress(geoObject){
var declaration = {
'CountryName': 'country',
'AdministrativeAreaName': 'area',
'SubAdministrativeAreaName': 'subarea',
'LocalityName': 'city',
'DependentLocalityName': 'subcity',
'ThoroughfareName': 'street',
'PremiseNumber': 'house'
},
parseParams = ['Country', 'CountryName', 'AdministrativeArea', 'AdministrativeAreaName',
'Locality', 'LocalityName', 'Thoroughfare', 'ThoroughfareName', 'Premise', 'PremiseNumber',
'DependentLocality', 'DependentLocalityName',
'SubAdministrativeArea', 'SubAdministrativeAreaName'],
level = geoObject.metaDataProperty.GeocoderMetaData.AddressDetails,
result = {},
nextLevel;
while(true){
var goDeeper = false;
for(var key in level){
if(parseParams.indexOf(key) !== -1){
if(typeof level[key] === 'object'){
nextLevel = level[key];
goDeeper = true;
}else
for(var declKey in declaration)
if(declKey === key)
result[declaration[key]] = level[key];
}
}
if(goDeeper)
level = nextLevel; //we need to go deeper ;)
else
break;
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment