Place Details (New)

  • You can fetch detailed information about a place using its Place ID and the Place.fetchFields() method.

  • Specify the desired place data fields (e.g., displayName, formattedAddress) when calling fetchFields().

  • Access the fetched data through the returned Place object.

  • Alternatively, the Place Overview component offers a pre-built UI to display place details.

  • Configure and embed the Place Overview component using the provided configurator for seamless integration.

Select platform: Android iOS JavaScript Web Service
European Economic Area (EEA) developers

Place object

The Place object, which contains information about a place, is dynamically returned by Text Search, Nearby Search, and Place Autocomplete. You can also create a Place object from a place ID or resource name (the resource name is the place ID prefixed with places/). The following snippet shows creating a Place object using a place ID:

// Use a place ID to create a new Place instance. const place = new Place({  id: 'ChIJyYB_SZVU2YARR-I1Jjf08F0', // San Diego Zoo });

You can also create a Place object from a place resource name:

// Use a place resource name to create a new Place instance. const place = new Place({  resourceName: 'places/ChIJyYB_SZVU2YARR-I1JRF08F0', // San Diego Zoo });

For more information, see PlaceOptions.

Fetch fields

If you have an existing Place object, or a place ID or resource name, use the Place.fetchFields() method to get details about that place. Provide a comma-separated list of place data fields to return; specify field names in camel case. Use the returned Place object to get data for the requested fields.

The following example uses a place ID to create a new Place, calls Place.fetchFields() requesting the displayName and formattedAddress fields, and adds a marker to the map.

TypeScript

async function getPlaceDetails() {  const { Place } = (await google.maps.importLibrary(  'places'  )) as google.maps.PlacesLibrary;  const { AdvancedMarkerElement } = (await google.maps.importLibrary(  'marker'  )) as google.maps.MarkerLibrary;  // Use place ID to create a new Place instance.  const place = new Place({  id: 'ChIJyYB_SZVU2YARR-I1Jjf08F0', // San Diego Zoo  });  // Call fetchFields, passing the desired data fields.  await place.fetchFields({  fields: [  'displayName',  'formattedAddress',  'location',  'googleMapsURI',  ],  });  // Add an Advanced Marker  const marker = new AdvancedMarkerElement({  map: innerMap,  position: place.location,  title: place.displayName,  });  // Assemble the info window content.  const content = document.createElement('div');  const address = document.createElement('div');  const placeId = document.createElement('div');  address.textContent = place.formattedAddress || '';  placeId.textContent = place.id;  content.append(placeId, address);  if (place.googleMapsURI) {  const link = document.createElement('a');  link.href = place.googleMapsURI;  link.target = '_blank';  link.textContent = 'View Details on Google Maps';  content.appendChild(link);  }  // Display an info window.  infoWindow.setHeaderContent(place.displayName);  infoWindow.setContent(content);  infoWindow.open({  anchor: marker,  }); }

JavaScript

async function getPlaceDetails() {  const { Place } = (await google.maps.importLibrary('places'));  const { AdvancedMarkerElement } = (await google.maps.importLibrary('marker'));  // Use place ID to create a new Place instance.  const place = new Place({  id: 'ChIJyYB_SZVU2YARR-I1Jjf08F0', // San Diego Zoo  });  // Call fetchFields, passing the desired data fields.  await place.fetchFields({  fields: [  'displayName',  'formattedAddress',  'location',  'googleMapsURI',  ],  });  // Add an Advanced Marker  const marker = new AdvancedMarkerElement({  map: innerMap,  position: place.location,  title: place.displayName,  });  // Assemble the info window content.  const content = document.createElement('div');  const address = document.createElement('div');  const placeId = document.createElement('div');  address.textContent = place.formattedAddress || '';  placeId.textContent = place.id;  content.append(placeId, address);  if (place.googleMapsURI) {  const link = document.createElement('a');  link.href = place.googleMapsURI;  link.target = '_blank';  link.textContent = 'View Details on Google Maps';  content.appendChild(link);  }  // Display an info window.  infoWindow.setHeaderContent(place.displayName);  infoWindow.setContent(content);  infoWindow.open({  anchor: marker,  }); }
Note that Map and Place have been declared prior to this function:
const { Map } = await google.maps.importLibrary("maps"); const { Place } = await google.maps.importLibrary("places");
See the complete example