סקירה כללית
הפונקציות בספריית המקומות, Maps JavaScript API מאפשרות את האפליקציה שלך לחיפוש מקומות (מוגדר ב-API הזה כמוסדות, מיקומים גיאוגרפיים מיקומים או נקודות עניין בולטות) בתוך אזור מוגדר, כמו גבולות במפה או מסביב לנקודה קבועה.
Places API כולל תכונת השלמה אוטומטית שבה ניתן להשתמש כדי לתת לאפליקציות שלך את התנהגות החיפוש-הבא של מפות Google שדה החיפוש. כשמשתמש יתחיל להקליד כתובת, ההשלמה האוטומטית למלא את השאר. מידע נוסף זמין במאמר השלמה אוטומטית תיעוד.
תחילת העבודה
אם אתם לא מכירים את Maps JavaScript API או את JavaScript, מומלץ לבדוק את JavaScript קבלת מפתח API לפני להתחיל בעבודה בקלות.
הפעלת ממשקי API
לפני השימוש בספריית 'מקומות' ב-API של JavaScript של מפות Google, יש לוודא תחילה ש-Places API מופעל במסוף Google Cloud, שהגדרתם עבור ממשק ה-API של JavaScript של מפות Google.
כדי להציג את רשימת ממשקי ה-API המופעלים:
- נכנסים אל מסוף Google Cloud.
- לוחצים על הלחצן Select a project, ובוחרים את הפרויקט שהגדרתם. של Maps JavaScript API ולוחצים על Open.
- ברשימת ממשקי ה-API במרכז הבקרה, מחפשים Places API.
- אם ה-Places API מופיע ברשימה, הוא כבר מופעל. אם ממשק ה-API
לא מופיעה ברשימה, צריך להפעיל אותה:
- בחלק העליון של הדף, בוחרים באפשרות ENABLE APIS AND SERVICES כדי להציג את ספרייה. לחלופין, בתפריט שבצד שמאל, בוחרים באפשרות ספרייה.
- מחפשים את Places API ובוחרים אותו מתוך רשימת התוצאות.
- בוחרים באפשרות הפעלה. כשהתהליך מסתיים, Places API מופיע ברשימת ממשקי ה-API מרכז השליטה.
הספרייה בטעינה
שירות 'מקומות' הוא ספרייה בפני עצמה, הנפרדת מהספרייה הראשית
קוד JavaScript של Maps API. כדי להשתמש בפונקציונליות שכלולה
בספרייה הזו, קודם צריך לטעון אותה באמצעות libraries
בכתובת ה-URL של אתחול ה-API של מפות Google:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>
סקירה כללית של הספריות לקבלת מידע נוסף.
הוספת Places API לרשימת ההגבלות של מפתח ה-API
החלת הגבלות API על המפתחות שלך מגבילה את השימוש במפתח ה-API ממשקי API או ערכות SDK נוספים. בקשות ל-API או ל-SDK שמשויכים למפתח ה-API: יהיה מעובד. בקשות ל-API או ל-SDK שלא משויכים למפתח ה-API: נכשל. כדי להגביל מפתח API לשימוש עם ספריית המקומות, Maps JavaScript API:- נכנסים אל מסוף Google Cloud.
- לוחצים על התפריט הנפתח של הפרויקט ובוחרים את הפרויקט שמכיל את מפתח ה-API שרוצים לאבטח.
- לוחצים על לחצן התפריט ובוחרים באפשרות Google Maps Platform > פרטי כניסה
- בדף Credentials, לוחצים על שם ה-API המפתח שרוצים לאבטח.
- בדף הגבלה ושינוי שם של מפתח API, מגדירים את ההגבלות:
- הגבלות על ממשקי API
- בוחרים באפשרות Restrict key.
- לוחצים על Select APIs ובוחרים ב-Maps JavaScript API וב-Places API.
(אם אחד מממשקי ה-API לא מופיע ברשימה, עליך להפעיל אותו).
- לוחצים על שמירה.
מגבלות שימוש ומדיניות
מכסות
ספריית המקומות חולקת מכסת שימוש עם מציב את ממשק ה-API כפי שמתואר במסמכים בנושא מגבלות שימוש עבור Places API.
מדיניות
השימוש בספריית המקומות, Maps JavaScript API חייב להיות בהתאם המדיניות שמתוארת ל-Places API.
חיפושי מקומות
באמצעות שירות 'מקומות' ניתן לבצע חיפושים מהסוגים הבאים:
- חיפוש מקום מהשאילתה מחזירה מקום על סמך שאילתת טקסט (לדוגמה, השם או הכתובת של מקום).
- חיפוש מקום מהטלפון Number מחזיר מקום לפי מספר טלפון.
- חיפוש בקרבת מקום מחזירה רשימה של מקומות קרובים בהתאם למיקום של המשתמש.
- חיפוש טקסט מחזירה רשימה של מקומות קרובים לפי מחרוזת חיפוש, למשל "פיצה".
- בקשות לפרטי מקום להחזיר מידע מפורט יותר על מקום ספציפי, כולל ביקורות של משתמשים.
המידע המוחזר יכול לכלול מוסדות, כגון מסעדות, חנויות ומשרדים, וגם 'קואורדינטות' של התוצאות, לציין כתובות, אזורים פוליטיים כגון יישובים וערים וכן נקודות עניין.
חיפוש בקשות למקומות
בקשה מסוג 'חיפוש מקום' מאפשרת לחפש מקום באמצעות שאילתת טקסט או מספר טלפון. יש שני סוגים של בקשות לחיפוש מקום:
חיפוש מקום מהשאילתה
החיפוש Place from Query מקבל קלט טקסט ומחזיר מקום. הקלט יכול
להיות כל סוג של נתוני מקום, לדוגמה שם עסק או כתובת. כדי ליצור
חיפוש מקום מבקשת השאילתה, קוראים ל-PlacesService
findPlaceFromQuery()
, שמקבלת את הפרמטרים הבאים:
query
(חובה) מחרוזת הטקסט שיש לחפש בה דוגמה: "מסעדה" או "הרצל 123". השם צריך להיות שם של מקום. כתובת או קטגוריה של מוסדות. כל סוג אחר של קלט יכול ליצור שגיאות, ולא בטוח שיחזירו תוצאות תקפות. Places API תחזיר התאמות אפשריות על סמך המחרוזת הזו ותסדר את התוצאות על סמך מידת הרלוונטיות שבה הם נתפסו.fields
(חובה) שדה אחד או יותר שמציין את הסוגים של נתוני המקום להחזרה.locationBias
(אופציונלי) קואורדינטות המגדירות את האזור לחיפוש. יכול להיות הבאים:- קבוצת קואורדינטות קו רוחב/lng שצוינו כ- LatLngLiteral או אובייקט LatLng
- גבולות מלבניים (שני זוגות של קווי אורך ורוחב, או אובייקט LatLngBounds)
- רדיוס (במטרים) במרכז קו רוחב/lng
עליך גם להעביר שיטת קריאה חוזרת אל findPlaceFromQuery()
,
כדי לטפל באובייקט התוצאות, google.maps.places.PlacesServiceStatus
תשובה.
הדוגמה הבאה מציגה קריאה אל findPlaceFromQuery()
,
שמחפשים את הביטוי "המוזיאון לאומנות עכשווית באוסטרליה", וגם
name
ו-geometry
שדות.
var map; var service; var infowindow; function initMap() { var sydney = new google.maps.LatLng(-33.867, 151.195); infowindow = new google.maps.InfoWindow(); map = new google.maps.Map( document.getElementById('map'), {center: sydney, zoom: 15}); var request = { query: 'Museum of Contemporary Art Australia', fields: ['name', 'geometry'], }; var service = new google.maps.places.PlacesService(map); service.findPlaceFromQuery(request, function(results, status) { if (status === google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } map.setCenter(results[0].geometry.location); } }); }
חיפוש מקום ממספר הטלפון
השירות 'מקום ממספר טלפון' מקבל מספר טלפון ומחזיר את המקום. שפת תרגום
לבצע בקשה של 'מצא מקום ממספר טלפון', להתקשר אל
המכשיר findPlaceFromPhoneNumber()
של PlacesService
, שמקבלת את הפרמטרים הבאים:
phoneNumber
(חובה) מספר טלפון בפורמט E.164.fields
(חובה) שדה אחד או יותר שמציין את הסוגים של נתוני המקום להחזרה.locationBias
(אופציונלי) קואורדינטות המגדירות את האזור אל לחפש הישות יכולה להיות אחת מהאפשרויות הבאות:- קבוצת קואורדינטות קו רוחב/lng שצוינו כ- LatLngLiteral או אובייקט LatLng
- גבולות מלבניים (ארבעה נקודות של קווי אורך ורוחב, או אובייקט LatLngBounds)
- רדיוס (במטרים) במרכז קו רוחב/lng
עליך גם להעביר שיטת קריאה חוזרת אל findPlaceFromPhoneNumber()
,
כדי לטפל באובייקט התוצאות, google.maps.places.PlacesServiceStatus
תשובה.
שדות (שיטות של חיפוש מקום)
משתמשים בפרמטר fields
כדי לציין מערך של סוגי נתוני מקומות שיוחזרו.
לדוגמה: fields: ['formatted_address', 'opening_hours', 'geometry']
.
צריך להשתמש בנקודה כשמציינים ערכים מורכבים. לדוגמה: opening_hours.weekday_text
.
השדות תואמים לתוצאות החיפוש של מקום, והם מחולקים
לשלוש קטגוריות חיוב: בסיסי, יצירת קשר ואטמוספירה. השדות הבסיסיים הם
החיוב מתבצע לפי התעריף הבסיסי, ללא חיובים נוספים. קשר ואווירה
בשדות שמחויבים בתעריף גבוה יותר. לעיון בגיליון התמחור
אפשר לקבל מידע נוסף. הייחוסים (html_attributions
) הם תמיד
שהוחזרו בכל שיחה, גם אם השדה
נדרש.
Basic
הקטגוריה הבסיסית כוללת את השדות הבאים:
business_status
, formatted_address
, geometry
,
icon
,icon_mask_base_uri
, icon_background_color
,
name
, permanently_closed
(הוצאה משימוש),
photos
, place_id
, plus_code
, types
יצירת קשר
הקטגוריה 'יצירת קשר' כוללת את השדה הבא:opening_hours
(הוצאה משימוש בספריית מקומות, Maps JavaScript API. השתמשו בבקשה ל'פרטי מקום' כדי לקבל
opening_hours
תוצאות).
אווירה
הקטגוריה 'אטמוספירה' כוללת את השדות הבאים:price_level
, rating
, user_ratings_total
findPlaceFromQuery()
וגם
ל-findPlaceFromPhoneNumber()
methods יש אותה קבוצה של
ויכולים להחזיר את אותם שדות בתשובות המתאימות.
הגדרה של הטיית מיקום (שיטות של 'חיפוש מקום')
כדי ליצור תוצאות לטובת 'חיפוש מקום', צריך להשתמש בפרמטר locationBias
בתחום מסוים. אפשר להגדיר את locationBias
בדרכים הבאות
דרכים:
הטיית תוצאות לאזור ספציפי:
locationBias: {lat: 37.402105, lng: -122.081974}
מגדירים אזור מלבני לחיפוש:
locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}
אפשר גם להשתמש ב-LatLngBounds.
מגדירים רדיוס לחיפוש (במטרים), כשהוא ממוקם במרכז אזור מסוים:
locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}
בקשות חיפוש בקרבת מקום
חיפוש בקרבת מקום מאפשר לך לחפש מקומות בתוך אזור ספציפי לפי מילת מפתח או סוג. חיפוש בקרבת מקום חייב תמיד לכלול מיקום, שיכול אפשר לציין אותן באחת משתי הדרכים הבאות:
-
LatLngBounds
. - שטח מעגלי שמוגדר כשילוב של
location
מאפיין — ציון מרכז המעגל אובייקטLatLng
— ורדיוס, שנמדד במטרים.
חיפוש של 'מקומות בקרבת מקום' מופעל בהפעלה של
שיטת nearbySearch()
של
PlacesService
, שתינתן
להחזיר מערך של
PlaceResult
אובייקטים. חשוב לשים לב שnearbySearch()
ה-method מחליפה את השיטה search()
נכון לגרסה 3.9.
service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback);
השיטה הזו מקבלת בקשה עם השדות הבאים:
- אחת מהאפשרויות:
bounds
, שחייב להיות האובייקטgoogle.maps.LatLngBounds
שמגדיר את המלבני אזור החיפוש. מרחק האלכסון המקסימלי הנתמך לגבולות הוא בערך 100,000 מטרים.location
ו-radius
. הראשונה לוקחת אובייקטgoogle.maps.LatLng
, והשיטה השנייה לוקחת מספר שלם, שמייצג את רדיוס המעגל במטרים. הערך המקסימלי הרדיוס המותר הוא 50,000 מטרים. שימו לב שכאשר הערךrankBy
מוגדר ל-DISTANCE, עליך לצייןlocation
אבל לא ניתן לצייןradius
אוbounds
.
keyword
(אופציונלי) – מונח להתאמה מול כל השדות הזמינים, כולל, בין היתר, שם, סוג וכן ביקורות של לקוחות ותוכן אחר של צד שלישי.minPriceLevel
ו-maxPriceLevel
(אופציונלי) – התוצאות מוגבלות רק למקומות ב- הטווח שצוין. הערכים התקינים נעים בטווח של 0 (הכי זול) עד 4 (היקר ביותר), כולל.name
הוצא משימוש. שוות ערך ל-keyword
. ערכים בשדה הזה ישולבו עם ערכים בשדהkeyword
ומועברים כחלק מאותה מחרוזת חיפוש.openNow
(אופציונלי) — ערך בוליאני, שמציין ששירות 'מקומות' אמור להחזיר רק את המקומות פתוחים לעסקים בזמן שהשאילתה נשלחת. מקומות שבהם לא לציין שעות פתיחה במסד הנתונים של מקומות Google. מוחזר אם כוללים את הפרמטר הזה בשאילתה. ההגדרה אין השפעה מ-openNow
ל-false
.rankBy
(אופציונלי) – מציין את הסדר אילו תוצאות מופיעות. הערכים האפשריים הם:google.maps.places.RankBy.PROMINENCE
(ברירת המחדל). הזה ממיינת תוצאות לפי החשיבות שלהן. הדירוג העדפה של מקומות בולטים ברדיוס שהוגדר על פני מקומות קרובים מקומות תואמים אבל פחות בולטים. מידת הבולטוּת יכולה להיות מושפע מהדירוג של מקום באינדקס של Google, מהפופולריות העולמית שלו וגורמים אחרים. מתיgoogle.maps.places.RankBy.PROMINENCE
הוא שצוין, חובה לכלול את הפרמטרradius
.google.maps.places.RankBy.DISTANCE
האפשרות הזו מיון התוצאות בסדר עולה לפי המרחק שלהן מהנקודה שצוינהlocation
(חובה). שימו לב שלא ניתן לצייןbounds
בהתאמה אישית ו/אוradius
אם לצייןRankBy.DISTANCE
. כשמצייניםRankBy.DISTANCE
, אחד או יותר מ-keyword
,name
אוtype
הם נדרש.
type
— מגבילה את תוצאות למקומות התואמים לסוג שצוין. ניתן לבחור רק סוג אחד (אם צוין יותר מסוג אחד, כל הסוגים הבאים המערכת מתעלמת מרשומות כאלה). לצפייה ברשימה של הסוגים הנתמכים.
עליך גם להעביר שיטת קריאה חוזרת אל nearbySearch()
, כדי
נטפל באובייקט התוצאות,
תגובה google.maps.places.PlacesServiceStatus
.
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: '500', type: ['restaurant'] }; service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } } }
בקשות לחיפוש טקסט
שירות חיפוש הטקסט של 'מקומות Google' הוא שירות אינטרנט שמחזיר מידע על קבוצה של מקומות שמבוססת על מחרוזת. לדוגמה "פיצה בתל אביב" או "חנויות נעליים ליד אוטווה". השירות מגיב באמצעות רשימה של מקומות שתואמים למחרוזת הטקסט וכל הטיית מיקום הוגדרה. תגובת החיפוש תכלול רשימה של מקומות. אפשר לשלוח בקשה לפרטי מקום לקבלת מידע נוסף על כל אחד מהמקומות תשובה.
חיפושי טקסט מבוצעים באמצעות קריאה ל
שיטת textSearch()
של PlacesService
.
service = new google.maps.places.PlacesService(map); service.textSearch(request, callback);
השיטה הזו מקבלת בקשה עם השדות הבאים:
query
(חובה) מחרוזת הטקסט שאליה יש להעביר חיפוש, לדוגמה: "מסעדה" או "הרצל 123". זה חייב להיות מקום שם, כתובת או קטגוריה של מוסדות. כל סוג אחר של קלט יוצרות שגיאות ולא מובטח שיחזירו תוצאות תקפות. המקומות והשירות יחזיר התאמות אפשריות על סמך המחרוזת הזו, ויסדרו את על סמך מידת הרלוונטיות שלהן. הפרמטר הזה הופך לאופציונלי אם נעשה שימוש גם בפרמטרtype
בבקשת החיפוש.- אופציונלי:
openNow
— ערך בוליאני, שמציין ששירות 'מקומות' אמור להחזיר רק את המקומות פתוחים לעסקים בזמן שהשאילתה נשלחת. מקומות שבהם לא לציין שעות פתיחה במסד הנתונים של מקומות Google. מוחזר אם כוללים את הפרמטר הזה בשאילתה. ההגדרה אין השפעה מ-openNow
ל-false
.minPriceLevel
ו-maxPriceLevel
- הגבלת התוצאות למקומות בלבד בתוך רמת המחיר שצוינה. הערכים החוקיים נמצאים בטווח של 0 (הכי זול) עד 4 (היקר ביותר), כולל.- אחת מהאפשרויות:
bounds
, שחייב להיות האובייקטgoogle.maps.LatLngBounds
שמגדיר את המלבני אזור החיפוש. מרחק האלכסון המקסימלי הנתמך לגבולות הוא בערך 100,000 מטרים.location
ו-radius
— אפשר תוצאות של הטיה כלפי מעגל שצוין על ידי העברתlocation
ופרמטרradius
. הפעולה הזו תגרור להורות לשירות 'מקומות' להעדיף להציג תוצאות במסגרת מעגל. יכול להיות שעדיין יוצגו תוצאות מחוץ לאזור שהוגדר. המיקום לוקח אובייקטgoogle.maps.LatLng
, הרדיוס לוקח מספר שלם פשוט, שמייצג את רדיוס המעגל במטרים. הרדיוס המקסימלי המותר הוא 50,000 מטר.
type
— הגבלת התוצאות למקומות תואמים מהסוג שצוין. ניתן לציין רק סוג אחד (אם יותר מסוג אחד השדה 'type' מוגדר, המערכת תתעלם מכל הסוגים שמופיעים אחרי הרשומה הראשונה. צפייה לרשימת הסוגים הנתמכים
עליך גם להעביר שיטת קריאה חוזרת אל textSearch()
, כדי
תטפל באובייקט התוצאות
תגובה google.maps.places.PlacesServiceStatus
.
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: '500', query: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { var place = results[i]; createMarker(results[i]); } } }
תשובות לחיפוש
קודי סטטוס
אובייקט התשובה PlacesServiceStatus
מכיל את הסטטוס של
את הבקשה, ועשויה לכלול מידע על תוצאות ניפוי הבאגים כדי לעזור לכם לאתר
למה בקשת המקום נכשלה. ערכי סטטוס אפשריים הם:
INVALID_REQUEST
: הבקשה הזו לא הייתה חוקית.OK
: התשובה מכילה תוצאה חוקית.OVER_QUERY_LIMIT
: דף האינטרנט ביצע את הבקשה שלו במכסה.REQUEST_DENIED
: דף האינטרנט אינו מורשה להשתמש ב- שירות PlacesService.UNKNOWN_ERROR
: לא ניתן לבצע את הבקשה של PlacesService עובדו בגלל שגיאה בחיבור לשרת. אם תנסו שוב, יכול להיות שהבקשה תבוצע בהצלחה.ZERO_RESULTS
: לא נמצאה תוצאה לבקשה הזו.
תוצאות של חיפוש מקום
הערכים findPlace()
, nearbySearch()
פונקציות textSearch()
מחזירות מערך של
PlaceResult
אובייקטים.
כל אובייקט PlaceResult
יכול לכלול את המאפיינים הבאים:
business_status
מציין את התפעול הסטטוס של המקום, אם מדובר בעסק. הוא יכול להכיל את אחד הערכים הערכים הבאים:OPERATIONAL
CLOSED_TEMPORARILY
CLOSED_PERMANENTLY
business_status
.formatted_address
היא מחרוזת שמכילה את הטקסט קריא לאנשים הכתובת של המקום הזה. הנכסformatted_address
הוא רק שהוחזרו בתגובה לחיפוש טקסט.בדרך כלל הכתובת הזאת מקבילה לכתובת הדואר. שימו לב: למשל בריטניה, לא מאפשרות הפצה של כתובות למשלוח דואר עקב הגבלות רישוי.
הכתובת המעוצבת מורכבת באופן לוגי מכתובת אחת או יותר רכיבים. לדוגמה, הכתובת "שדרות רוטשילד 11, תל אביב" מורכב מהרכיבים הבאים: "111" (מספר הרחוב), "8th Avenue" (השדרה 8) (המסלול), "תל אביב" (העיר) ו-"NY" (מדינה בארה"ב).
אין לנתח את הכתובת בפורמט פרוגרמטית. במקום זאת, צריך להשתמש את רכיבי הכתובת הנפרדים, שתגובת ה-API כוללת לשדה הכתובת בפורמט המתאים.
geometry
: מידע שקשור לגיאומטריה של המקום. הזה כוללת:location
מספק את קו הרוחב וקו האורך של במקום.viewport
מגדיר את אזור התצוגה המועדף במפה כאשר שמראים את המקום הזה.
permanently_closed
(הוצאה משימוש) הוא דגל בוליאני שמציין אם המקום נסגר באופן זמני או קבוע (ערךtrue
). לא להשתמשpermanently_closed
במקום זאת, משתמשים ב-business_status
כדי לקבל את הסטטוס התפעולי של עסקים.plus_code
(ראו פתיחת קוד המיקום וקודי פלוס) היא הפניה מקודדת למיקום, שנגזרת מקואורדינטות של קווי אורך ורוחב, מייצג שטח: 1/8,000 מעלות במעלה 1/8,000 מעלה (בערך 14 מ' x 14 מ' בקו המשווה) או פחות. אפשר להשתמש ב-Plus Codes כתחליף ל- של רחובות במקומות שבהם הן אינן קיימות (כאשר הבניינים אינם ממוספרים, אין שמות של רחובות).ה-Plus Code הוא בפורמט של קוד גלובלי וקוד מורכב:
global_code
הוא קוד אזור בן 4 תווים וקוד מקומי באורך 6 תווים או יותר (849VCWC8+R9).compound_code
הוא קוד מקומי באורך 6 תווים או יותר עם מיקום מפורש (CWC8+R9, Mountain View, CA, ארה"ב). אין לנתח את התוכן הזה באופן פרוגרמטי.
html_attributions
: מערך של ייחוסים שמומלץ מוצגות בזמן הצגת תוצאות החיפוש. כל ערך במערך מכיל את טקסט ה-HTML לייחוס יחיד. הערה: זהו צבירה של כל הייחוסים של תגובת החיפוש כולה. הכול לכן ישPlaceResult
אובייקטים בתשובה רשימות שיוך זהות.icon
מחזירה את כתובת ה-URL של סמל PNG צבעוני בגודל 71px x 71px.icon_mask_base_uri
מחזיר את כתובת ה-URL הבסיסית של פריט ללא צבע , פחות הסיומת .svg או .pngicon_background_color
מחזיר את קוד הצבע HEX שמוגדר כברירת מחדל עבור הקטגוריה של המקום.name
: שם המקום.opening_hours
עשוי להכיל את המידע הבא:open_now
הוא ערך בוליאני שמציין אם המקום פתוח בשעה הנוכחית (הוצא משימוש בספריית מקומות, API JavaScript של מפות Google, יש להשתמש ב-utc_offset_minutes
במקום זאת).
place_id
הוא מזהה טקסטואלי שמזהה באופן ייחודי במקום. כדי לאחזר מידע על המקום, מעבירים את המזהה הזה פרטי מקום בקשה. איך מפנים מקום למקום עם מזהה מקום.rating
מכיל את דירוג המקום, מ-0.0 עד 5.0, מבוסס או ביקורות מצטברות של משתמשים.types
מערך של סוגים של המקום הזה (למשל,["political", "locality"]
או["restaurant", "lodging"]
). המערך הזה עשוי להכיל ערכים מרובים, או להיות ריק. ייתכנו ערכים חדשים ללא הודעה מוקדמת. לצפייה ברשימה של סוגים נתמכים.vicinity
: כתובת פשוטה יותר של המקום, כולל שם הרחוב, מספר הרחוב והרשות המוניציפאלית, אבל לא מחוז/מדינה, מיקוד או מדינה. לדוגמה, סידני של Google, במשרד באוסטרליה, ערךvicinity
הוא5/48 Pirrama Road, Pyrmont
.
גישה לתוצאות נוספות
כברירת מחדל, כל חיפוש של מקום מחזיר עד 20 תוצאות לכל שאילתה. אבל, לפעמים
כל חיפוש יכול להחזיר עד 60 תוצאות, המפוצלות על פני שלושה דפים.
דפים נוספים זמינים דרך PlaceSearchPagination
לאובייקט. כדי לגשת לדפים נוספים, עליך לצלם את
אובייקט PlaceSearchPagination
באמצעות פונקציית קריאה חוזרת.
אובייקט PlaceSearchPagination
מוגדר כך:
hasNextPage
מאפיין בוליאני שמציין אם תוצאות זמינות.true
כשיש עוד דף תוצאות החיפוש.nextPage()
פונקציה שתחזיר את הקבוצה הבאה של תוצאות. לאחר ביצוע חיפוש, עליך להמתין שתיים שניות לפני שדף התוצאות הבא יהיה זמין.
כדי לראות את קבוצת התוצאות הבאה, צריך להתקשר למספר nextPage
.
כל דף של תוצאות חייב להיות מוצג לפני הצגת הדף הבא של
תוצאות. חשוב לזכור שכל חיפוש נחשב כבקשה אחת נגד
מגבלות שימוש.
הדוגמה הבאה ממחישה איך לשנות את פונקציית הקריאה החוזרת
מתעדים את האובייקט PlaceSearchPagination
, כדי שאפשר יהיה להפיק
בקשות חיפוש מרובות.
TypeScript
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap(): void { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", } as google.maps.MapOptions ); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage: () => void | false; const moreButton = document.getElementById("more") as HTMLButtonElement; moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, ( results: google.maps.places.PlaceResult[] | null, status: google.maps.places.PlacesServiceStatus, pagination: google.maps.places.PlaceSearchPagination | null ) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } } ); } function addPlaces( places: google.maps.places.PlaceResult[], map: google.maps.Map ) { const placesList = document.getElementById("places") as HTMLElement; for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon!, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name!, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name!; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry!.location!); }); } } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap() { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map(document.getElementById("map"), { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", }); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage; const moreButton = document.getElementById("more"); moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, (results, status, pagination) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } }, ); } function addPlaces(places, map) { const placesList = document.getElementById("places"); for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry.location); }); } } } window.initMap = initMap;
כדאי לנסות דוגמה
פרטי מקומות
בנוסף למתן רשימה של מקומות בתוך אזור, הכרטיסייה 'מקומות' שירות יכול גם להחזיר מידע מפורט על מקום ספציפי. פעם אחת מקום הוחזר בתגובה לחיפוש מקום, אפשר להשתמש במזהה מקום כדי לבקש פרטים נוספים. לגבי המקום, כמו הכתובת המלאה, מספר הטלפון ודירוג המשתמשים ביקורות וכו'.
בקשות לפרטי מקום
כדי לקבל את פרטי המקום, צריך להתקשר לשירות
אמצעי תשלום אחד (getDetails()
).
service = new google.maps.places.PlacesService(map); service.getDetails(request, callback);
השיטה הזו לוקחת בקשה, המכילה את הנתונים של המקום הרצוי
placeId
, ושדות שמציינים אילו סוגים של נתונים של מקומות
כדי לחזור אליה. מידע נוסף על
איך להפנות למקום באמצעות מזהה מקום
היא גם משתמשת בשיטת קריאה חוזרת, שצריך לטפל בקוד הסטטוס שמועבר
בתשובה google.maps.places.PlacesServiceStatus
, וגם
בתור האובייקט google.maps.places.PlaceResult
.
var request = { placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4', fields: ['name', 'rating', 'formatted_phone_number', 'geometry'] }; service = new google.maps.places.PlacesService(map); service.getDetails(request, callback); function callback(place, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { createMarker(place); } }
שדות (פרטי מקום)
הפרמטרfields
לוקח מערך של מחרוזות (שמות שדות).
משתמשים בפרמטר fields
כדי לציין מערך של סוגי נתוני מקומות שיוחזרו.
לדוגמה: fields: ['address_components', 'opening_hours', 'geometry']
.
צריך להשתמש בנקודה כשמציינים ערכים מורכבים. לדוגמה: opening_hours.weekday_text
.
השדות תואמים לפרטי המקום
תוצאות החיפוש, והן מחולקות לשלוש קטגוריות חיוב: בסיסי, יצירת קשר ו
אווירה. שדות בסיסיים מחויבים לפי התעריף הבסיסי, ולא צוברים חיובים נוספים
חיובים. החיוב בשדות אנשי קשר ושדה אווירה הוא גבוה יותר. לעיון בגיליון התמחור
אפשר לקבל מידע נוסף. הייחוסים (html_attributions
) הם תמיד
שהוחזרו בכל שיחה, גם אם הבקשה התבקשה.
Basic
הקטגוריה הבסיסית כוללת את השדות הבאים:
address_components
, adr_address
, business_status
,
formatted_address
, geometry
, icon
,
icon_mask_base_uri
, icon_background_color
,name
,
permanently_closed
(הוצא משימוש),
photo
, place_id
, plus_code
, type
,
url
, utc_offset
(הוצאה משימוש
בספריית מקומות Google, Maps JavaScript API), utc_offset_minutes
,
vicinity
יצירת קשר
הקטגוריה 'יצירת קשר' כוללת את השדות הבאים:
formatted_phone_number
, international_phone_number
opening_hours
, website
אווירה
הקטגוריה 'אטמוספירה' כוללת את השדות הבאים:
price_level
, rating
, reviews
user_ratings_total
מידע נוסף על place fields. לקבלת מידע נוסף על אופן החיוב של בקשות לנתוני מקום, ראה שימוש וחיוב.
תשובות בנושא פרטי מקום
קודי סטטוס
אובייקט התשובה PlacesServiceStatus
מכיל את הסטטוס של
את הבקשה, ועשויה לכלול מידע על תוצאות ניפוי הבאגים כדי לעזור לכם לאתר
מדוע הבקשה 'פרטי מקום' נכשלה. ערכי סטטוס אפשריים הם:
INVALID_REQUEST
: הבקשה הזו לא הייתה חוקית.OK
: התשובה מכילה תוצאה חוקית.OVER_QUERY_LIMIT
: דף האינטרנט ביצע את הבקשה שלו במכסה.NOT_FOUND
המיקום שאליו מתבצעת ההפניה לא היה שנמצא במסד הנתונים של 'מקומות'.REQUEST_DENIED
: דף האינטרנט אינו מורשה להשתמש ב- שירות PlacesService.UNKNOWN_ERROR
: לא ניתן לבצע את הבקשה של PlacesService עובדו בגלל שגיאה בחיבור לשרת. אם תנסו שוב, יכול להיות שהבקשה תבוצע בהצלחה.ZERO_RESULTS
: לא נמצאה תוצאה לבקשה הזו.
תוצאות של פרטי מקום
הפעלת getDetails()
שבוצעה בהצלחה מחזירה
אובייקט PlaceResult
עם המאפיינים הבאים:
address_components
: מערך שמכיל את הפונקציה הרכיבים הרלוונטיים לכתובת הזו.כל רכיב כתובת מכיל בדרך כלל את השדות הבאים:
types[]
הוא מערך שמציין את הסוג של רכיב כתובת. לצפייה ברשימה של סוגים נתמכים.long_name
הוא התיאור או השם של הטקסט המלא של של רכיב הכתובת כפי שהוחזר על ידי ה-Geocoder.short_name
הוא שם טקסט מקוצר של הכתובת רכיב, אם הוא זמין. לדוגמה, רכיב כתובת של המדינה ייתכן שבאלסקה ישlong_name
של 'אלסקה' וגםshort_name
מתוך "AK" באמצעות קיצור בן 2 אותיות.
חשוב לשים לב לעובדות הבאות לגבי
address_components[]
מערך:- מערך רכיבי הכתובת עשוי להכיל יותר רכיבים
formatted_address
- המערך לא כולל בהכרח את כל הישויות הפוליטיות
להכיל כתובת, מלבד הכתובות
formatted_address
כדי לאחזר את כל הישויות הפוליטיות שכוללים כתובת ספציפית, צריך להשתמש בקידוד גיאוגרפי הפוך, קו הרוחב/קו האורך של הכתובת כפרמטר לבקשה. - לא בטוח שפורמט התשובה יישאר זהה
בקשות. באופן ספציפי, המספר של
address_components
משתנה בהתאם לכתובת המבוקשת ועשוי להשתנות עם הזמן, אותה כתובת. רכיב יכול לשנות את המיקום במערך. סוג הרכיב יכול להשתנות. רכיב מסוים עשוי להיות חסרה בתשובה מאוחרת יותר.
business_status
מציין את התפעול הסטטוס של המקום, אם מדובר בעסק. הוא יכול להכיל את אחת מהאפשרויות הערכים הבאים:OPERATIONAL
CLOSED_TEMPORARILY
CLOSED_PERMANENTLY
business_status
.formatted_address
: כתובת של המקום הזה שאנשים יכולים לקרוא.בדרך כלל הכתובת הזאת מקבילה לכתובת הדואר. שימו לב: למשל בריטניה, לא מאפשרות הפצה של כתובות למשלוח דואר עקב הגבלות רישוי.
הכתובת המעוצבת מורכבת באופן לוגי מכתובת אחת או יותר רכיבים. לדוגמה, הכתובת "שדרות רוטשילד 11, תל אביב" מורכב מהרכיבים הבאים: "111" (מספר הרחוב), "8th Avenue" (השדרה 8) (המסלול), "תל אביב" (העיר) ו-"NY" (מדינה בארה"ב).
אין לנתח את הכתובת בפורמט פרוגרמטית. במקום זאת, צריך להשתמש את רכיבי הכתובת הנפרדים, שתגובת ה-API כוללת לשדה הכתובת בפורמט המתאים.
formatted_phone_number
: מספר הטלפון של המקום, בפורמט המתאים בהתאם מוסכמות אזוריות של מספר.geometry
: מידע שקשור לגיאומטריה של המקום. הזה כוללת:location
מספק את קו הרוחב וקו האורך של במקום.viewport
מגדיר את אזור התצוגה המועדף במפה כאשר שמראים את המקום הזה.
permanently_closed
(הוצאה משימוש) הוא דגל בוליאני שמציין אם המקום נסגר באופן זמני או קבוע (ערךtrue
). לא להשתמשpermanently_closed
במקום זאת, משתמשים ב-business_status
כדי לקבל את הסטטוס התפעולי של עסקים.plus_code
(ראו פתיחת קוד המיקום וקודי פלוס) היא הפניה מקודדת למיקום, שנגזרת מקואורדינטות של קווי אורך ורוחב, מייצג שטח: 1/8,000 מעלות במעלה 1/8,000 מעלה (בערך 14 מ' x 14 מ' בקו המשווה) או פחות. אפשר להשתמש ב-Plus Codes כתחליף ל- של רחובות במקומות שבהם הן אינן קיימות (כאשר הבניינים אינם ממוספרים, אין שמות של רחובות).ה-Plus Code הוא בפורמט של קוד גלובלי וקוד מורכב:
global_code
הוא קוד אזור בן 4 תווים וקוד מקומי באורך 6 תווים או יותר (849VCWC8+R9).compound_code
הוא קוד מקומי באורך 6 תווים או יותר עם מיקום מפורש (CWC8+R9, Mountain View, CA, ארה"ב). אין לנתח את התוכן הזה באופן פרוגרמטי.
html_attributions
: טקסט השיוך (Attribution) שיוצג עבור את התוצאה של המקום הזה.icon
: כתובת URL של מקור תמונות שאפשר להשתמש בו שמייצגים את הסוג של המקום הזה.international_phone_number
מכיל את הטלפון של המקום מספר בפורמט בינלאומי. פורמט בינלאומי כולל את שם המדינה ולפניו מופיע סימן הפלוס (+). לדוגמה,international_phone_number
לסידני של Google, אוסטרליה המשרד הוא+61 2 9374 4000
.name
: שם המקום.utc_offset
הוצא משימוש בספריית המקומות, ב-JavaScript API של מפות Google, יש להשתמש ב-utc_offset_minutes
במקום זאת.utc_offset_minutes
מכיל את מספר הדקות הזה אזור הזמן הנוכחי של המקום שונה מ-UTC. לדוגמה, עבור מקומות בתוך סידני, אוסטרליה בשעון קיץ, זה יהיה 660 (+11 שעות) מ-UTC), ובמקומות בקליפורניה מחוץ לשעון קיץ זה יכול להיות -480 (-8 שעות מ-UTC).opening_hours
מכיל את המידע הבא:open_now
(הוצאה משימוש בספריית מקומות, Maps JavaScript API; להשתמש במקום זאת, opening_hours.isOpen(). בסרטון הזה מוסבר איך משתמשים בתכונהisOpen
עם פרטי מקום). הוא ערך בוליאני שמציין אם המקום פתוח כרגע בזמן האימון.periods[]
הוא מערך של תקופות פתיחה שכוללות שבע ימים, החל מיום ראשון, בסדר כרונולוגי. כל תקופה כולל:open
מכיל צמד אובייקטים של יום ושעה שמתאר את המועד שבו המקום נפתח:day
מספר בין 0 ל-6, בהתאם לימים בשבוע, החל מיום ראשון. לדוגמה, המשמעות של 2 יום שלישי.time
עשויה להכיל שעה ביום לפי 24 שעות (hhmm) פורמט (הערכים נמצאים בטווח 0000–2359). יופיע דיווח עלtime
באזור הזמן של המקום.
close
יכול להכיל צמד אובייקטים של יום ושעה שמתארת את המועד שבו המקום נסגר. הערה: אם מקום פתוח תמיד, הקטעclose
לא כלולה בתשובה. אפליקציות יכולות להסתמך על אפליקציות שפתוחות תמיד שמיוצגת בתור תקופה שלopen
שמכילהday
עם ערך 0 ו-time
עם ערך 0000, ולאclose
.
weekday_text
הוא מערך של שבע מחרוזות שמייצגות שעות הפתיחה בכל יום בשבוע. אם הפרמטרlanguage
צוין בפרטי המקום בקשה, שירות מקומות יעצב את שעות הפתיחה ויבצע התאמה לשוק המקומי שמתאימות לשפה הזו. סדר הרכיבים מערך תלוי בפרמטרlanguage
. חלק מהשפות להתחיל את השבוע ביום שני, ואילו אחרים מתחילים ביום ראשון.
permanently_closed
(הוצאה משימוש) הוא דגל בוליאני שמציין אם המקום נסגר באופן זמני או קבוע (ערךtrue
). לא להשתמשpermanently_closed
במקום זאת, משתמשים ב-business_status
כדי לקבל את הסטטוס התפעולי של עסקים.photos[]
: מערך שלPlacePhoto
אובייקטים. אפשר להשתמש ב-PlacePhoto
כדי לקבל תמונה עםgetUrl()
, או לבדוק את האובייקט כדי הערכים הבאים:height
: הגובה המקסימלי של התמונה בפיקסלים.width
: הרוחב המקסימלי של התמונה, בפיקסלים.html_attributions
: טקסט ייחוס שיוצג עם התמונה של המקום הזה.
place_id
: מזהה טקסטואלי שמזהה באופן ייחודי מקום, ואפשר להשתמש בו כדי לאחזר מידע על המקום פרטי מקום בקשה. איך מפנים מקום למקום עם מזהה מקום.rating
: הדירוג של המקום, מ-0.0 עד 5.0, על סמך ביקורות מצטברות של משתמשים.reviews
מערך של עד חמש ביקורות. כל ביקורת מורכבת מכמה רכיבים:aspects[]
מכיל מערך שלPlaceAspectRating
אובייקטים, שכל אחד מהם מספק בדירוג של מאפיין יחיד של העסק. האובייקט הראשון במערך נחשב להיבט הראשי. כל אחדPlaceAspectRating
מוגדר כך:type
שם ההיבט המסווג. הסוגים הבאים נתמכים:appeal
,atmosphere
,decor
facilities
,food
,overall
,quality
ו-service
.rating
הדירוג של המשתמש ביחס למוצר הספציפי הזה מ-0 עד 3.
author_name
שם המשתמש ששלח את ביקורת. ביקורות אנונימיות משויכות ל'משתמש Google'. אם הוגדר פרמטר שפה ואז את הביטוי "משתמש Google" רצון מחזירה מחרוזת מותאמת לשוק המקומי.author_url
את כתובת ה-URL של פרופיל Google+ של המשתמשים, אם זמינים.language
קוד שפה IETF שמציין את השפה ששימשו בביקורת של המשתמש. השדה הזה מכיל את תג השפה הראשי בלבד, ולא התג המשני שמציין מדינה או אזור. עבור לדוגמה, כל הביקורות באנגלית מתויגות כ-'en' ולא כ-'en-AU'. או 'en-UK' וכן הלאה.rating
הדירוג הכולל של המשתמש למקום הזה. הזה הוא מספר שלם בטווח שבין 1 ל-5.text
הביקורת של המשתמש. כאשר בודקים מיקום ב'מקומות Google', ביקורות טקסט נחשבות אופציונליות; לכן השדה הזה יכול להישאר ריק.
types
מערך של סוגים של המקום הזה (למשל,["political", "locality"]
או["restaurant", "lodging"]
). המערך הזה עשוי להכיל ערכים מרובים, או להיות ריק. ייתכנו ערכים חדשים ללא הודעה מוקדמת. לצפייה ברשימה של סוגים נתמכים.url
: כתובת ה-URL של דף Google הרשמי של הנושא במקום. זהו הדף בבעלות Google שכולל את התוכן הטוב ביותר לקבל מידע זמין על המקום. אפליקציות חייבות לקשר אל או להטמיע אותן את הדף הזה בכל מסך שמציג תוצאות מפורטות לגבי המקום משתמש.vicinity
: כתובת פשוטה יותר של המקום, כולל שם הרחוב, מספר הרחוב והרשות המוניציפאלית, אבל לא מחוז/מדינה, מיקוד או מדינה. לדוגמה, סידני של Google, במשרד באוסטרליה, ערךvicinity
הוא5/48 Pirrama Road, Pyrmont
. הנכסvicinity
מוחזר רק לחיפוש בקרבת מקום.website
מציין את האתר המוסמך של המקום הזה, כמו כעסק' דף הבית.
הערה: ייתכן שדירוגים רב-ממדיים לא יהיו זמינים עבור כל המיקומים. אם אין יותר מדי ביקורות, התשובה מפורטת לכלול דירוג מדור קודם בסולם של 0.0 עד 5.0 (אם זמין) או ללא דירוג כלשהו.
שימוש ברכיב 'סקירה כללית של מקום'
הערה: הדוגמה הזו מתבססת על ספריית קוד פתוח. לצפייה README לקבלת תמיכה ומשוב שקשור לספרייה.
אפשר לנסות רכיבי אינטרנט. אפשר להשתמש ב יש להציב את רכיב האינטרנט של הסקירה הכללית כדי לקבל פרטי מקום באמצעות ייצוג חזותי.
הפניה למקום באמצעות מזהה מקום
מזהה מקום הוא הפניה ייחודית למקום במפות Google. מזהי מקומות זמינים עבור רוב המיקומים, כולל עסקים, ציוני דרך, פארקים, וצמתים.
כדי להשתמש במזהה מקום באפליקציה, קודם צריך לחפש את המזהה,
זמין ב-PlaceResult
של בקשה ל'חיפוש מקום' או 'פרטים'.
לאחר מכן אפשר להשתמש במזהה המקום הזה כדי לחפש
מקום
פרטים.
מזהי המקומות פטורים מהגבלות השמירה במטמון שצוינו בסעיף 3.2.3(ב) של התנאים וההגבלות של הפלטפורמה של מפות Google. לכן אפשר לשמור ערכים של מזהה מקום לשימוש במועד מאוחר יותר. עבור כשמאחסנים מזהי מקומות, עיינו בשיטות המומלצות סקירה כללית על מזהה המקום.
var map; function initialize() { // Create a map centered in Pyrmont, Sydney (Australia). map = new google.maps.Map(document.getElementById('map'), { center: {lat: -33.8666, lng: 151.1958}, zoom: 15 }); // Search for Google's office in Australia. var request = { location: map.getCenter(), radius: '500', query: 'Google Sydney' }; var service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } // Checks that the PlacesServiceStatus is OK, and adds a marker // using the place ID and location from the PlacesService. function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { var marker = new google.maps.Marker({ map: map, place: { placeId: results[0].place_id, location: results[0].geometry.location } }); } } google.maps.event.addDomListener(window, 'load', initialize);
תמונות של המקום
התכונה 'תמונת מקום' מאפשרת להוסיף תמונה באיכות גבוהה תוכן לאתר שלך. שירות התמונות מעניק לך גישה למיליונים תמונות ששמורות במסד הנתונים של 'מקומות' ושל Google+ Local. מה קורה אחרי שמקבלים מקום מידע באמצעות בקשה של פרטי מקום, תמונה קובצי עזר יוחזרו עבור תוכן צילום רלוונטי. החיפוש בקרבת מקום ובקשות של 'חיפוש טקסט' מחזירות גם הפניה אחת של תמונה לכל מקום, רלוונטיות. באמצעות שירות Photos אפשר לגשת לתמונות הרלוונטיות לשנות את גודל התמונה לגודל האופטימלי עבור האפליקציה שלך.
יוחזר מערך של PlacePhoto
אובייקטים כחלק
אובייקט PlaceResult
לכל getDetails()
,
textSearch()
או
נשלחה בקשת nearbySearch()
נגד PlacesService
.
הערה: מספר התמונות שמוחזרים משתנה בהתאם לבקשה.
- חיפוש בקרבת מקום או חיפוש טקסט יחזירו חיפוש אחד לכל היותר
אובייקט
PlacePhoto
. - בקשת פרטים תחזיר עד עשרה אובייקטים מסוג
PlacePhoto
.
כדי לבקש את כתובת ה-URL של התמונה המשויכת צריך להפעיל את
השיטה PlacePhoto.getUrl()
, והעברת ערך תקין
אובייקט PhotoOptions
. האובייקט PhotoOptions
מאפשר
כדי לציין את הגובה והרוחב המקסימליים הרצויים של התמונה. אם
לציין ערך גם ל-maxHeight
וגם ל-maxWidth
,
שירות התמונות ישנה את גודל התמונה להקטנה מבין שני הגדלים,
תוך שמירה על יחס הגובה-רוחב המקורי.
קטע הקוד הבא מקבל אובייקט של מקום ומוסיף סמן למפה, אם קיימת תמונה. תמונת הסמן המוגדרת כברירת מחדל הוחלפה באמצעות גרסה מוקטנת של התמונה.
function createPhotoMarker(place) { var photos = place.photos; if (!photos) { return; } var marker = new google.maps.Marker({ map: map, position: place.geometry.location, title: place.name, icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35}) }); }
התמונות שהוחזרו על ידי שירות התמונות מתקבלות ממגוון של
מיקומים, כולל בעלי עסקים ותמונות שנוספו על ידי משתמשים. במרבית
במקרים מסוימים, אפשר להשתמש בתמונות האלה ללא ייחוס, או שלא תהיה להן דרישה
כחלק מהתמונה. אבל אם הערך שהוחזר
הרכיב photo
כולל ערך
html_attributions
, חובה לכלול את האפשרויות הנוספות
באפליקציה שלכם, בכל מקום שבו אתם מציגים את התמונה.