توفّر حزمة تطوير البرامج (SDK) لأماكن على نظام التشغيل iOS لتطبيقك معلومات غنية عن الأماكن، بما في ذلك اسم المكان وعنوانه والموقع الجغرافي الذي تم تحديده من خلال إحداثيات خط العرض/خط الطول ونوع المكان (مثل النادي الليلي ومتجر الحيوانات الأليفة والمتحف) وغير ذلك. للوصول إلى هذه المعلومات لمكان معيّن، يمكنك استخدام معرّف المكان، وهو معرّف ثابت يحدّد مكانًا بشكل فريد.
تفاصيل المكان
تقدّم فئة
GMSPlace
معلومات عن مكان معيّن. يمكنك الحصول على عنصر
GMSPlace
بالطرق التالية:
- يُرجى الاتصال بالرقم
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
. اطّلِع على الدليل المخصص ل الحصول على المكان الحالي. - اتصل بـ
GMSPlacesClient fetchPlaceFromPlaceID:
، مع تمريرGMSPlaceField
و رقم تعريف مكان وطريقة ردّ اتصال. بالنسبة إلى طلبات تفاصيل الأماكن، إذا لم يتم تحديد حقل واحد على الأقل في الطلب، أو إذا تم حذف المَعلمةfields
من الطلب، سيتم عرض جميع الحقول الممكنة، وسيتم تحصيل الرسوم منك تبعًا لذلك. اطّلِع على دليل الحصول على مكان باستخدام رقم التعريف.
عند طلب مكان، عليك تحديد أنواع بيانات الأماكن التي تريد
عرضها. لإجراء ذلك، عليك تمرير GMSPlaceField
مع تحديد أنواع البيانات
التي تريد عرضها. هذا عامل مهم يجب أخذه في الاعتبار، لأنّه سيؤثّر في
التكلفة لكل طلب.
ولأنّ نتائج بيانات الأماكن لا يمكن أن تكون فارغة، لا يتم عرض سوى نتائج
الأماكن التي تتضمّن بيانات (على سبيل المثال، إذا لم يكن للمكان المطلوب
صور، لن يظهر الحقل photos
في النتيجة).
يُرسِل المثال التالي قائمة بـ قِيم حقلَين لتحديد البيانات التي يعرضها الطلب:
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))
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
اطّلِع على مزيد من المعلومات عن حقول الأماكن. لمزيد من المعلومات حول كيفية تحصيل رسوم طلبات بيانات "الأماكن"، يُرجى الاطّلاع على الاستخدام والفوترة.
يمكن أن تحتوي فئة
GMSPlace
على بيانات الأماكن التالية:
-
name
: اسم المكان editorialSummary
– يوفّر وصفًا لمكان معيّن.placeID
: المعرّف النصي للمكان يمكنك الاطّلاع على مزيد من المعلومات عن معرّفات الأماكن في بقية هذه الصفحة.-
coordinate
– الموقع الجغرافي للمكان، المحدَّد بالإحداثيات الجغرافية لخط العرض وخط الطول phoneNumber
– رقم هاتف المكان بالتنسيق الدوليformattedAddress
: العنوان المفهوم لهذا الموقع الجغرافيوغالبًا ما يكون هذا العنوان مطابقًا للعنوان البريدي. تجدر الإشارة إلى أنّ بعض البلدان، مثل المملكة المتحدة، لا تسمح بتوزيع العناوين البريدية الحقيقية بسبب القيود المفروضة على الترخيص.
يتألّف العنوان المنسَّق منطقيًا من مكوّن عنوان واحد أو أكثر. على سبيل المثال، يتألّف العنوان "111 شارع 8، القاهرة، القاهرة" من المكوّنات التالية: "111" (رقم الشارع)، "شارع 8" (المسار)، و"القاهرة" (المدينة) و "القاهرة" (الولاية).
لا تُحلِّل العنوان المنسَّق آليًا. بدلاً من ذلك، يجب استخدام عناصر العنوان الفردية التي تتضمّنها استجابة واجهة برمجة التطبيقات بالإضافة إلى حقل العنوان المنسَّق.
-
openingHours
: ساعات عمل المكان (كما هو موضح فيGMSOpeningHours
). اتصل بالرقمGMSOpeningHours.weekdayText
للحصول على قائمة بالسلاسل المترجَمة لساعات العمل اليومية للأسبوع. اتصل بـGMSOpeningHours.Periods
لعرض قائمة بـGMSPeriod
تتضمّن معلومات أكثر تفصيلاً مماثلة للبيانات التي يوفّرهاweekdayText
. ملاحظة: إذا كان المكان مفتوحًا دائمًا، يتم تمثيل الفترة الزمنية على النحو التالي: الأحد في منتصف الليل، ويكونcloseEvent
فارغًا. -
currentOpeningHours
وsecondaryOpeningHours
: حقلَان يأخذان في الاعتبار العطلات والتغييرات المؤقتة في الجدول الزمني لأحد الأماكن.
addressComponents
: مصفوفة من عناصرGMSAddressComponent
التي تمثّل مكونات عنوان مكان معيّن يتم توفير هذه المكوّنات بغرض استخراج معلومات منظَّمة عن عنوان مكان معيّن، على سبيل المثال، العثور على المدينة التي يقع فيها مكان معيّن. لا تستخدِم هذه المكوّنات لتنسيق العنوان، بل استخدِم السمةformattedAddress
التي تقدّم عنوانًا منسَّقًا ومُعرَّبًا.يُرجى ملاحظة الحقائق التالية حول الصفيف
addressComponents
:- قد تحتوي صفيف مكوّنات العنوان على مكوّنات أكثر من
formattedAddress
. - لا تتضمّن المصفوفة بالضرورة جميع الكيانات السياسية التي
تحتوي على عنوان، باستثناء تلك المضمّنة في
formattedAddress
. - لا يمكن ضمان أن يظل تنسيق الردّ كما هو بين
الطلبات. على وجه الخصوص، يختلف عدد
addressComponents
حسب العنوان المطلوب ويمكن أن يتغيّر بمرور الوقت بالنسبة إلى العنوان نفسه. يمكن أن يغيّر المكوّن موضعه في الصفيف. يمكن أن يتغيّر نوع المكوّن. قد يكون أحد المكوّنات غير متوفّر في ردّ لاحق.
- قد تحتوي صفيف مكوّنات العنوان على مكوّنات أكثر من
userRatingsTotal
– يمثّل عدد المراجعات التي تشكل تقييم المكان.
تحتوي فئة
GMSPlace
على الدوالّ التالية للأعضاء:
-
تحسب دالة
isOpen
ما إذا كان المكان مفتوحًا في الوقت المحدّد، استنادًا إلىopeningHours
وUTCOffsetMinutes
، والتاريخ والوقت الحاليَين. - تحسب دالة
isOpenAtDate
ما إذا كان المكان مفتوحًا في تاريخ معيّن، استنادًا إلىopeningHours
وUTCOffsetMinutes
، والتاريخ والوقت الحاليين.
عند استخدام هاتين الدالتَين للحصول على أوقات العمل و/أو التواريخ، يجب أن يحدّد طلب fetchPlaceFromPlaceID:
أو findPlaceLikelihoodsFromUserLocationWithPlaceFields:
الأصلي حقلَي GMSPlaceFieldOpeningHours
وGMSPlaceFieldUTCOffsetMinutes
معًا. إذا لم يتوفّر أيّ من هذين الحقلين، لن يحتوي العنصر GMSPlace
الناتج على أوقات أو تواريخ الافتتاح، وستُعرِض الدعوة
GMSPlaceOpenStatusUnknown
. لضمان الحصول على نتائج دقيقة، يُرجى طلب الحقلَين
GMSPlaceFieldBusinessStatus
وGMSPlaceFieldUTCOffsetMinutes
في طلب المكان الأصلي. وفي حال عدم طلب ذلك، يُفترض أنّه
نشط.
isOpen
مع ميزة "تفاصيل المكان".
الحصول على ساعات عمل استثنائية
في حين أنّه يمكن الحصول على ساعات العمل العادية من خلالopeningHours
، يتيح currentOpeningHours
وsecondaryOpeningHours
تغييرات الجدول الزمني خلال العطلات والمواسم.
يمكن فلترة ساعات العمل الاستثنائية لهذه الأيام الخاصة وعرضها إذا كانت متاحة.
Swift
func examineOpeningHours(place: GMSPlace) { // Check if the current opening hours contains a special day that has exceptional hours guard let currentOpeningHours = place.currentOpeningHours else { return } if let specialDays = currentOpeningHours.specialDays { guard !specialDays.isEmpty else { return } if let specialDay = specialDays.filter { $0.isExceptional }.first { // Indicate exceptional hours } } // Check if current opening hours contains a truncated time period let periods = currentOpeningHours.periods if !periods.isEmpty { for period in periods { let open = period.open let close = period.close if let open = open { let date = open.date if open.isTruncated { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available let secondaryOpeningHours = place.secondaryOpeningHours guard let hoursType = secondaryOpeningHours.first?.hoursType else { return } if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
Objective-C
- (void)examineOpeningHours:(GMSPlace *) place { // Check if the current opening hours contains a special day that has exceptional hours GMSOpeningHours *currentOpeningHours = place.currentOpeningHours; if (currentOpeningHours != nil) { NSArray<GMSPlaceSpecialDay *> *specialDays = currentOpeningHours.specialDays; if ([specialDays count] != 0) { for (GMSPlaceSpecialDay *specialDay in specialDays) { NSDate *date = specialDay.date; if ([specialDay isExceptional]) { // Indicate exceptional hours } } } } // Check if current opening hours contains a truncated time period NSArray <GMSPeriod *> * periods = currentOpeningHours.periods; if ([periods count] != 0) { for (GMSPeriod * period in periods) { GMSTimeOfWeek *open = period.open; GMSTimeOfWeek *close = period.close; if (open) { if ([open isTruncated]) { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available GMSOpeningHours *secondaryOpeningHours = place.secondaryOpeningHours; GMSPlaceHoursType hoursType = secondaryOpeningHours.getHoursType; if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
الحصول على مكان باستخدام معرّفه
معرّف المكان هو معرّف نصي يحدِّد مكانًا بشكل فريد. في
حزمة تطوير برامج "الأماكن" لنظام التشغيل iOS، يمكنك استرداد معرّف مكان من عنصر
GMSPlace
. يمكنك تخزين معرّف المكان واستخدامه لاسترداد عنصر
GMSPlace
مرة أخرى لاحقًا.
للحصول على مكان حسب المعرّف، يمكنك الاتصال بالخدمة
GMSPlacesClient
fetchPlaceFromPlaceID:
مع تضمين المَعلمات التالية:
- سلسلة تحتوي على رقم تعريف مكان
GMSPlaceField
واحد أو أكثر لتحديد أنواع البيانات التي سيتم عرضها- رمز مميّز للجلسة إذا تم إجراء المكالمة لإنهاء طلب بحث للإكمال التلقائي بخلاف ذلك، يمكنك تمرير القيمة nil.
GMSPlaceResultCallback
للتعامل مع النتيجة
تستدعي واجهة برمجة التطبيقات طريقة ردّ الاتصال المحدّدة، مع تمرير عنصر
GMSPlace
. إذا لم يتم العثور على المكان، يكون عنصر المكان فارغًا.
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]); } }];
عرض الإسنادات في تطبيقك
عندما يعرض تطبيقك معلومات تم الحصول عليها من
GMSPlacesClient
lookUpPlaceID:callback:
، يجب أن يعرض التطبيق أيضًا الإسنادات.
راجِع المستندات حول
عمليات تحديد المصدر.
مزيد من المعلومات عن أرقام تعريف الأماكن
معرّف المكان المستخدَم في حزمة تطوير البرامج (SDK) لأماكن iOS هو المعرّف نفسه المستخدَم في Places API وحزمة تطوير البرامج (SDK) لأماكن Android وواجهات برمجة تطبيقات Google الأخرى.
يمكن أن يشير كل معرّف مكان إلى مكان واحد فقط، ولكن يمكن أن يتضمّن مكان واحد أكثر من معرّف مكان واحد.
هناك ظروف قد تؤدي إلى حصول مكان على معرّف مكان جديد. على سبيل المثال، قد يحدث ذلك إذا نقل نشاط تجاري إلى موقع جغرافي جديد.
عند طلب مكان من خلال تحديد معرّف مكان، يمكنك التأكّد من أنّه سيظهر لك المكان نفسه دائمًا في الردّ (إذا كان المكان لا يزال متوفّرًا). يُرجى العِلم أنّ الردّ قد يحتوي على معرّف مكان مختلف عن المعرّف الوارد في طلبك.
لمزيد من المعلومات، اطّلِع على نظرة عامة على معرّف المكان.