Skip to content

Instantly share code, notes, and snippets.

@MSIH
Created February 18, 2022 17:54
Show Gist options
  • Save MSIH/cdb9f048aee97d56086db55091ec8464 to your computer and use it in GitHub Desktop.
Save MSIH/cdb9f048aee97d56086db55091ec8464 to your computer and use it in GitHub Desktop.
Get address components from google places
var getAddressProperty = function (place, property, shortName) {
var addressComponents = place.address_components;
for (var componentIndex in addressComponents) {
var component = addressComponents[componentIndex];
var types = component.types;
if (types.length > 0) {
for (var typeIndex in types) {
var type = types[typeIndex];
if (type === property) {
return (shortName) ? component.short_name : component.long_name;
}
}
}
}
return null;
};
var getStreetAddress = function (place) {
var streetNumber = getAddressProperty(place, 'street_number');
var street = getAddressProperty(place, 'route');
var orEmpty = function (entity) {
return entity || "";
};
var address = orEmpty(streetNumber) + " " + orEmpty(street);
if (/\S/.test(address)) {
return address.trim();
}
return null;
};
$scope.event.venue = {
address1: getStreetAddress(place),
country: getAddressProperty(place, 'country'),
city: getAddressProperty(place, 'locality'),
postcode: getAddressProperty(place, 'postal_code'),
name: getStreetAddress(place) === place.name ? null : place.name,
county: getAddressProperty(place, 'administrative_area_level_2') || getAddressProperty(place, 'administrative_area_level_1'),
coordinates: {
latitude: place.geometry.location.lat(),
longitude: place.geometry.location.lng()
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment