מבוא
מזהה מקום הוא המזהה הייחודי של מקום במסד הנתונים של "מקומות Google" ובמפות Google. אפשר להשתמש במזהי מקומות בבקשות לממשקי ה-API הבאים של מפות Google:
- אחזור כתובת של מזהה מקום ב-Geocoding API ובשירות המרת הכתובות לקואורדינטות (geocoding), Maps JavaScript API.
- ציון נקודת המוצא, היעד ונקודות ציון בדרך ב-Routes API, ב-Directions API (הגרסה הקודמת), בשירות המסלולים וב-Maps JavaScript API (הגרסה הקודמת).
- ציון נקודות מוצא ויעדים ב-Routes API, ב-Distance Matrix API (דור קודם) ובשירות מטריצת מרחקים, Maps JavaScript API (דור קודם).
- אחזור Place Details ב-Places API (חדש), ב-Places SDK ל-Android (חדש), ב-Places SDK ל-iOS (חדש) ובספריית המקומות.
- שימוש בפרמטרים של מזהה מקום ב-Maps Embed API.
- אחזור של שאילתות חיפוש בכתובות URL של מפות Google.
- הצגת מגבלות המהירות ב-Roads API.
- חיפוש פוליגונים של גבולות ועיצוב שלהם בסגנון מבוסס-נתונים לגבולות.
איך למצוא מזהה של מקום מסוים
מחפשים מזהה מקום של מקום ספציפי? אפשר להשתמש בכלי לחיפוש מזהה מקום שמופיע בהמשך כדי לחפש מקום ולקבל את המזהה שלו:
לחלופין, אתם יכולים לצפות בכלי לאיתור מזהי מקומות עם הקוד שלו במסמכי התיעוד של Maps JavaScript API.
איך מוצאים מזהי מקומות באמצעות קוד או סוכן AI
הכלי לאיתור מזהה מקום מחפש מקום אחד בכל פעם בדפדפן. כדי לחפש מזהי מקומות מאפליקציה, מסקריפט או מסוכן AI, צריך לשלוח קריאה ל-API:
- מהקוד:
שולחים בקשה של
חיפוש טקסט (חדש)
עם מאפייני המקום שמוגדרים כ-
GMSPlacePropertyPlaceID. בקשות שמחזירות רק מזהי מקומות מחויבות לפי המק"ט Places API Text Search Essentials (IDs Only). -
מסוכן AI או מאפליקציית LLM: משתמשים ב-Resolution API בכלי הסוכן של Maps Experience. ה
resolve_namesוresolve_maps_urlsכלי MCP פותרים עד 20 שמות מקומות, כתובות או כתובות URL של מפות Google כדי לחשב מזהי מקומות בכל בקשה. השיטות שזמינות הן אותן שיטות REST שזמינות ב-resolveNamesוב-resolveMapsUrls.
סקירה כללית
מזהה מקום הוא מזהה טקסטואלי שמזהה מקום באופן ייחודי. האורך של המזהה יכול להשתנות (אין אורך מקסימלי למזהי מקומות). דוגמאות:
-
ChIJgUbEo8cfqokR5lP9_Wh_DaM -
GhIJQWDl0CIeQUARxks3icF8U8A -
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN -
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E -
IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ
מזהי מקומות זמינים לרוב המיקומים, כולל עסקים, ציוני דרך, פארקים וצמתים. יכול להיות שלאותו מקום או מיקום יהיו כמה מזהי מקומות שונים. מזהי המקומות עשויים להשתנות עם הזמן.
אפשר להשתמש באותו מזהה מקום ב-Places API ובמספר ממשקי API של Google Maps Platform. לדוגמה, אפשר להשתמש באותו מזהה מקום כדי להפנות למקום ב-Places API, ב-Maps JavaScript API, ב-Geocoding API, ב-Maps Embed API וב-Roads API.
אחזור פרטי מקום באמצעות מזהה המקום
דרך נפוצה להשתמש במזהי מקומות היא לחפש מקום באמצעות Places API או ספריית המקומות ב-Maps JavaScript API. לאחר מכן, משתמשים במזהה המקום שמוחזר כדי לאחזר את פרטי המקום. אפשר לאחסן את מזהה המקום ולהשתמש בו כדי לאחזר את אותם פרטי מקום מאוחר יותר. בהמשך המסמך מוסבר איך לשמור מזהי מקומות.
דוגמה לשימוש ב-Places SDK ל-iOS
מזהה מקום הוא מזהה טקסטואלי שמזהה מקום באופן ייחודי. ב-Places SDK ל-iOS, אפשר לאחזר את המזהה של מקום מאובייקט GMSPlace. אפשר לאחסן את מזהה המקום ולהשתמש בו כדי לאחזר את האובייקט GMSPlace שוב מאוחר יותר.
כדי לקבל מקום לפי מזהה, מפעילים את GMSPlacesClient
fetchPlaceFromPlaceID: ומעבירים את הפרמטרים הבאים:
- מחרוזת שמכילה מזהה מקום.
-
GMSPlaceFieldאחד או יותר, שמציינים את סוגי הנתונים שיוחזרו. - טוקן לסשן, אם הקריאה מתבצעת כדי להשלים שאילתה של השלמה אוטומטית. אחרת, מעבירים nil.
-
GMSPlaceResultCallbackלטיפול בתוצאה.
ה-API מפעיל את שיטת הקריאה החוזרת שצוינה ומעביר אובייקט GMSPlace. אם המקום לא נמצא, אובייקט המקום הוא nil.
Places Swift SDK ל-iOS
// Initialize Places Swift Client. let placesClient = PlacesClient.shared // A hotel in Saigon with an attribution let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Fetch Place Request. let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.displayName] ) Task { switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): print("The selected place is: \(place.displayName): \(String(describing: place.description))") case .failure(let placesError): print("Place not found: \(placeID); \(placesError)") } }
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
שמירת מזהי מקומות לשימוש מאוחר יותר
מזהי מקומות פטורים מהגבלות השמירה במטמון שמפורטות בסעיף 3.2.3(b) בתנאים ובהגבלות של Google Maps Platform. לכן, אתם יכולים לאחסן ערכים של מזהי מקומות לשימוש מאוחר יותר.
רענון מזהי המקומות השמורים
מזהי המקומות עשויים להשתנות בגלל עדכונים במסד הנתונים של מפות Google, ולכן Google ממליצה לרענן את מזהי המקומות אם הם בני יותר מ-12 חודשים. אפשר לרענן את מזהי המקומות בחינם על ידי שליחת בקשה לפרטי מקום, וציון השדה GMSPlaceFieldPlaceID בלבד בפרמטר fields.
הקריאה הזו מפעילה את המק"ט Places Details - ID Refresh.
קודי שגיאה כשמשתמשים במזהי מקומות
INVALID_REQUEST
קוד הסטטוס INVALID_REQUEST מציין שמזהה המקום שצוין לא תקין. יכול להיות שיוחזר הערך INVALID_REQUEST אם מזהה המקום נחתך או שונה באופן אחר, והוא כבר לא נכון.
NOT_FOUND
קוד הסטטוס NOT_FOUND מציין שמזהה המקום שצוין מיושן. מזהה מקום יכול להפוך למיושן אם העסק נסגר או עובר למיקום חדש. מזהי מקומות יכולים להשתנות גם בגלל עדכונים במסד הנתונים של מפות Google. במקרים כאלה, יכול להיות שהמקום יקבל מזהה מקום חדש, ומזהה המקום הישן יחזיר את התגובה NOT_FOUND.
כדי לרענן את התוצאות במקרה של מזהה מקום מיושן, שומרים את הבקשה המקורית שהחזירה כל מזהה מקום ושולחים מחדש את הבקשה לפי הצורך. שימו לב שהבקשה שהונפקה מחדש מחויבת במק"ט המתאים.
סוגים מסוימים של מזהי מקומות עלולים לפעמים לגרום לתגובה NOT_FOUND, או שה-API עשוי להחזיר מזהה מקום אחר בתגובה. סוגי מזהי המקומות האלה כוללים:
- כתובות שלא קיימות במפות Google ככתובות מדויקות, אבל מוסקות מטווח של כתובות.
- קטעים של מסלול ארוך, שבהם הבקשה מציינת גם עיר או יישוב.
- צמתים.
- מקומות עם רכיב כתובת מסוג
subpremise.
המזהים האלה הם בדרך כלל מחרוזת ארוכה (אין אורך מקסימלי למזהי מקומות). לדוגמה:
EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4