شیء را قرار دهید
شیء Place که حاوی اطلاعاتی در مورد یک مکان است، به صورت پویا توسط جستجوی متن، جستجوی نزدیک و تکمیل خودکار مکان بازگردانده میشود. همچنین میتوانید یک شیء Place را از یک شناسه مکان یا نام منبع ایجاد کنید (نام منبع، شناسه مکان است که با places/ پیشوند شده است). قطعه کد زیر ایجاد یک شیء Place را با استفاده از شناسه مکان نشان میدهد:
// Use a place ID to create a new Place instance. const place = new Place({ id: 'ChIJyYB_SZVU2YARR-I1Jjf08F0', // San Diego Zoo });
همچنین میتوانید یک شیء Place را از نام منبع place ایجاد کنید:
// Use a place resource name to create a new Place instance. const place = new Place({ resourceName: 'places/ChIJyYB_SZVU2YARR-I1JRF08F0', // San Diego Zoo });
برای اطلاعات بیشتر، به PlaceOptions مراجعه کنید.
دریافت فیلدها
اگر یک شیء Place یا یک شناسه مکان یا نام منبع از قبل دارید، از متد Place.fetchFields() برای دریافت جزئیات مربوط به آن مکان استفاده کنید. فهرستی از فیلدهای داده مکان که با کاما از هم جدا شدهاند را برای بازگشت ارائه دهید؛ نام فیلدها را با حروف بزرگ (camel case) مشخص کنید. از شیء Place بازگشتی برای دریافت دادهها برای فیلدهای درخواستی استفاده کنید.
مثال زیر از یک شناسه مکان برای ایجاد یک Place جدید استفاده میکند، Place.fetchFields() را فراخوانی میکند و فیلدهای displayName و formattedAddress را درخواست میکند و یک نشانگر به نقشه اضافه میکند.
تایپ اسکریپت
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, }); }
جاوا اسکریپت
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 و Place قبل از این تابع تعریف شدهاند:const { Map } = await google.maps.importLibrary("maps"); const { Place } = await google.maps.importLibrary("places");