use-places-autocomplete icon indicating copy to clipboard operation
use-places-autocomplete copied to clipboard

`getAddressComponent` utility function

Open 99darshan opened this issue 2 years ago • 3 comments

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;
};

99darshan avatar Sep 05 '22 07:09 99darshan

This is also what i need because in need to use country short name which is 2 digit alpha code of country

hardik-javascript avatar Sep 12 '22 11:09 hardik-javascript

Any movement on this? Seems dead?

davedotdev avatar Apr 25 '23 14:04 davedotdev

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.

triethuynh2301 avatar May 12 '23 14:05 triethuynh2301