כדי לבקש פרטים נוספים על עסק או נקודת עניין מסוימים, משתמשים במזהה המקום שלהם ושולחים בקשה לפרטי מקום (חדש). השיטה Place Details (New) מחזירה מידע מקיף יותר על המקום שצוין, כמו הכתובת המלאה, מספר הטלפון, דירוג המשתמשים והביקורות.
יש הרבה דרכים לקבל מזהה מקום. אפשר להשתמש:
בקשות Place Details (New)
כדי לבקש פרטי מקום, מפעילים את PlacesClient.fetchPlace() ומעבירים אובייקט FetchPlaceRequest שמכיל מזהה מקום ורשימת שדות, וגם פרמטרים אופציונליים:
// Define a place ID.
final String placeId = "INSERT_PLACE_ID_HERE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList("INSERT_PLACE_FIELDS_HERE");
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);
תגובות של Place Details (New)
Place Details (New) מחזירה נתונים בצורה של אובייקט Place, שכולל רק את השדות שביקשתם באמצעות field list. תוצאות של נתוני מקומות לא יכולות להיות ריקות, ולכן מוחזרות רק תוצאות של מקומות עם נתונים (לדוגמה, אם למקום המבוקש אין תמונות, השדה photos לא יופיע בתוצאה).
כדי לגשת לשדות נתונים, מפעילים את השיטה המתאימה.
לדוגמה, כדי לגשת לשם המקום, צריך להפעיל את getName().
פרמטרים נדרשים
הפרמטרים הנדרשים ל-FetchPlaceRequest הם:
-
מזהה מקום
מזהה טקסטואלי שמזהה מקום באופן ייחודי, ומוחזר על ידי חיפוש טקסט (חדש), חיפוש בסביבה (חדש) או השלמה אוטומטית (חדש). מידע נוסף על מזהי מקומות זמין בסקירה הכללית של מזהי מקומות.
-
רשימת שדות
כששולחים בקשה לגבי מקום, צריך לציין אילו נתונים של המקום רוצים לקבל. כדי לעשות את זה, מעבירים רשימה של ערכי
Place.Fieldשמציינים את הנתונים שרוצים להחזיר. אין רשימת ברירת מחדל של שדות שמוחזרים בתגובה.רשימות שדות הן שיטה טובה לעיצוב, שמאפשרת לוודא שלא מבקשים נתונים מיותרים, וכך להימנע מזמן עיבוד מיותר ומחיובים מיותרים.הרשימה הזו היא שיקול חשוב כי היא משפיעה על העלות של כל בקשה. מידע נוסף זמין במאמר שימוש וחיוב.
מציינים אחד או יותר מהשדות הבאים:
השדות הבאים מפעילים את המק"ט Place Details Essentials IDs Only:
Place.Field.ID
Place.Field.PHOTO_METADATAS
Place.Field.RESOURCE_NAME
הרשימה המלאה של השדות והמקט"ים שמשויכים אליהם מופיעה במאמר בנושא שדות של נתוני מקומות (חדש).
השדות הבאים מפעילים את מק"ט Place Details Essentials:
Place.Field.ADDRESS_COMPONENTS
ADR_FORMAT_ADDRESS
Place.Field.FORMATTED_ADDRESS*
* אפשר להשתמש במקוםPlace.Field.ADDRESS(הוצא משימוש).
Place.Field.LOCATION*
* אפשר להשתמש במקוםPlace.Field.LAT_LNG(הוצא משימוש).
Place.Field.PLUS_CODE
Place.Field.SHORT_FORMATTED_ADDRESS
Place.Field.TYPES
Place.Field.VIEWPORTהרשימה המלאה של השדות והמקט"ים שמשויכים אליהם מופיעה במאמר בנושא שדות של נתוני מקומות (חדש).
השדות הבאים מפעילים את מזהה המק"ט Place Details Pro:
Place.Field.ACCESSIBILITY_OPTIONS*
* אפשר להשתמש במקוםPlace.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE(הוצא משימוש).
Place.Field.BUSINESS_STATUS
Place.Field.DISPLAY_NAME*
* צריך להשתמש במקוםPlace.Field.NAME, שהוצא משימוש.
Place.Field.GOOGLE_MAPS_URI
Place.Field.ICON_BACKGROUND_COLOR
Place.Field.ICON_MASK_URL*
* צריך להשתמש במקוםPlace.Field.ICON_URL(הוצא משימוש).
Place.Field.PRIMARY_TYPE
Place.Field.PRIMARY_TYPE_DISPLAY_NAME
Place.Field.SUB_DESTINATIONS
Place.Field.UTC_OFFSETהרשימה המלאה של השדות והמקט"ים שמשויכים אליהם מופיעה במאמר בנושא שדות של נתוני מקומות (חדש).
השדות הבאים מפעילים את מזהה המק"ט Place Details Enterprise:
Place.Field.CURRENT_OPENING_HOURS
Place.Field.CURRENT_SECONDARY_OPENING_HOURS
Place.Field.INTERNATIONAL_PHONE_NUMBER*
* צריך להשתמש במקוםPlace.Field.PHONE_NUMBER, שהוצא משימוש.
Place.Field.NATIONAL_PHONE_NUMBER
Place.Field.OPENING_HOURS
Place.Field.PRICE_LEVEL
Place.Field.RATING
Place.Field.SECONDARY_OPENING_HOURS
Place.Field.USER_RATING_COUNT*
* צריך להשתמש במקוםPlace.Field.USER_RATINGS_TOTAL, שהוצא משימוש.
Place.Field.WEBSITE_URIרשימה מלאה של השדות והמק"טים המשויכים אליהם מופיעה במאמר בנושא שדות של נתוני מקומות (חדש).
השדות הבאים מפעילים את המק"ט Place Details Enterprise Plus:
Place.Field.ALLOWS_DOGS
Place.Field.CURBSIDE_PICKUP
Place.Field.DELIVERY
Place.Field.DINE_IN
Place.Field.EDITORIAL_SUMMARY
Place.Field.EV_CHARGE_OPTIONS
Place.Field.FUEL_OPTIONS
Place.Field.GOOD_FOR_CHILDREN
Place.Field.GOOD_FOR_GROUPS
Place.Field.GOOD_FOR_WATCHING_SPORTS
Place.Field.LIVE_MUSIC
Place.Field.MENU_FOR_CHILDREN
Place.Field.OUTDOOR_SEATING
Place.Field.PARKING_OPTIONS
Place.Field.PAYMENT_OPTIONS
Place.Field.RESERVABLE
Place.Field.RESTROOM
Place.Field.REVIEWS
Place.Field.SERVES_BEER
Place.Field.SERVES_BREAKFAST
Place.Field.SERVES_BRUNCH
Place.Field.SERVES_COCKTAILS
Place.Field.SERVES_COFFEE
Place.Field.SERVES_DESSERT
Place.Field.SERVES_DINNER
Place.Field.SERVES_LUNCH
Place.Field.SERVES_VEGETARIAN_FOOD
Place.Field.SERVES_WINE
Place.Field.TAKEOUTרשימה מלאה של השדות והמק"טים המשויכים אליהם מופיעה במאמר בנושא שדות של נתוני מקומות (חדש).
פרמטרים אופציונליים
הפרמטרים האופציונליים של
FetchPlaceRequest
הם:
קוד אזור
קוד האזור שמשמש לעיצוב התשובה, שמוגדר כערך של קוד CLDR באורך שני תווים. אין ערך ברירת מחדל.
אם שם המדינה בשדה
Place.Field.FORMATTED_ADDRESSבתשובה תואם לערךregionCode, קוד המדינה מושמט מ-Place.Field.FORMATTED_ADDRESS.רוב הקודים במאגר CLDR זהים לקודים בתקן ISO 3166-1, אבל יש כמה יוצאים מן הכלל. לדוגמה, סיומת ה-ccTLD של בריטניה היא "uk" (.co.uk), וקוד ה-ISO 3166-1 שלה הוא "gb" (מבחינה טכנית, עבור הישות "הממלכה המאוחדת של בריטניה הגדולה וצפון אירלנד"). הפרמטר יכול להשפיע על התוצאות בהתאם לדין החל.
כדי להגדיר את הפרמטר של קוד האזור, צריך להפעיל את ה-method
setRegionCode()כשיוצרים את האובייקטFetchPlaceRequest.-
טוקן לסשן
טוקנים לסשן הם מחרוזות שנוצרות על ידי המשתמש ועוקבות אחרי קריאות ל-Autocomplete (השלמה אוטומטית) כ'סשנים'. השלמה אוטומטית (חדשה) משתמשת בטוקנים לסשנים כדי לקבץ את שלבי השאילתה ובחירת המקום של חיפוש עם השלמה אוטומטית של משתמש לסשן נפרד לצורכי חיוב. טוקנים לסשנים מועברים לקריאות ל-Place Details (חדש) שמתבצעות אחרי קריאות ל-Autocomplete (חדש). מידע נוסף זמין במאמר טוקנים לסשנים.
כדי להגדיר את הפרמטר של הטוקן לסשן, מפעילים את ה-method
setSessionToken()כשיוצרים את האובייקטFetchPlaceRequest.
דוגמה ל-Place Details
בדוגמה הבאה נשלחת בקשה לשדות ID, DISPLAY_NAME ו-FORMATTED_ADDRESS של בניין האמפייר סטייט בניו יורק.
// Define a place ID.
final String placeId = "ChIJaXQRs6lZwokRY6EFpJnhNNE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME, Place.Field.FORMATTED_ADDRESS);
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);