Tempatkan objek
Objek Place, yang berisi informasi tentang suatu tempat, ditampilkan secara dinamis oleh Text Search, Nearby Search, dan Place Autocomplete. Anda juga dapat membuat objek Place
dari ID tempat atau nama resource (nama resource adalah ID tempat yang diawali dengan
places/). Cuplikan berikut menunjukkan pembuatan objek Place menggunakan
ID tempat:
// Use a place ID to create a new Place instance. const place = new Place({ id: 'ChIJyYB_SZVU2YARR-I1Jjf08F0', // San Diego Zoo });
Anda juga dapat membuat objek Place dari nama resource tempat:
// Use a place resource name to create a new Place instance. const place = new Place({ resourceName: 'places/ChIJyYB_SZVU2YARR-I1JRF08F0', // San Diego Zoo });
Untuk mengetahui informasi selengkapnya, lihat PlaceOptions.
Mengambil kolom
Jika Anda memiliki objek Place yang ada, atau ID tempat atau nama resource, gunakan
metode Place.fetchFields() untuk mendapatkan detail tentang tempat tersebut. Berikan daftar kolom data tempat yang dipisahkan koma untuk ditampilkan; tentukan nama kolom dalam camel case. Gunakan objek Place yang ditampilkan untuk mendapatkan data
kolom yang diminta.
Contoh berikut menggunakan ID tempat untuk membuat Place baru, memanggil Place.fetchFields()
yang meminta kolom displayName dan formattedAddress, serta menambahkan
penanda ke peta.
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, }); }
Map dan Place telah dideklarasikan sebelum fungsi ini:
const { Map } = await google.maps.importLibrary("maps"); const { Place } = await google.maps.importLibrary("places");