use-places-autocomplete
use-places-autocomplete copied to clipboard
`getAddressComponent` utility function
Feature Request
Describe the Feature
I was thinking if we could add a getAddressComponent(result: GeocodeResult)
utility function? 🤔
This would be similar to getZipCode
utility function. getAddressComponent
can be applicable to extract other address components like state
, county
, country
, street number
, route
, city
, etc. from the GeoCodeResult
object.
Describe the Solution You'd Like
I was thinking of something like below, I have a WIP Commit HERE
export enum AddressComponent {
STREET_NUMBER = "street_number",
ROUTE = "route",
NEIGHBORHOOD = "neighborhood",
LOCALITY = "locality",
ADMINISTRATIVE_AREA_LEVEL_1 = "administrative_area_level_1",
ADMINISTRATIVE_AREA_LEVEL_2 = "administrative_area_level_2",
POSTAL_CODE = "postal_code",
COUNTRY = "country",
}
export const getAddressComponent = (
result: GeocodeResult,
addressComponent: AddressComponent,
useShortName: false
): string | undefined => {
const foundAddressComponent = result.address_components.find(({ types }) =>
types.includes(addressComponent)
);
if (!foundAddressComponent) return undefined;
return useShortName
? foundAddressComponent.short_name
: foundAddressComponent.long_name;
};
This is also what i need because in need to use country short name which is 2 digit alpha code of country
Any movement on this? Seems dead?
This would be a great addition to the library. I am not sure if this will be implemented anytime soon, but there is a way to get more details about the address of the location. In the getGeoCode
utility function. The result should return more details of the location search
// Get latitude and longitude via utility functions
getGeocode({ address: suggestion.description }).then((results) => {
// Contains details of the description (address, zip code, country, etc...)
console.log(results)
const { lat, lng } = getLatLng(results[0])
onChangeLocation(lat, lng)
})
Hope this helps anyone needing to find the actual address of the search.