توفر حزمة تطوير برامج الأماكن لنظام التشغيل 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 8th Avenue, New York, NY" تتكون من المكونات التالية: "111" (رقم الشارع)، "الجادة 8" (المسار)، "نيويورك" (المدينة) و"NY" (الولاية الأمريكية).
عدم تحليل العنوان المنسَّق آليًا. بدلاً من ذلك، يجب عليك استخدام مكونات العنوان الفردي، والتي تتضمنها استجابة واجهة برمجة التطبيقات بالإضافة إلى إلى حقل العنوان المنسَّق.
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
واحدًا أو أكثر، مع تحديد أنواع البيانات المطلوب عرضها. - رمز مميز للجلسة في حال إجراء الاستدعاء لإنهاء طلب بحث الإكمال التلقائي وإلا، فأمرر صفر.
- اضغط على
GMSPlaceResultCallback
لمعالجة النتيجة.
تستدعي واجهة برمجة التطبيقات طريقة معاودة الاتصال المحددة، وتمرير
GMSPlace
الخاص بك. إذا لم يتم العثور على المكان، يكون كائن المكان nil.
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:
، يجب أن يعرض التطبيق أيضًا المساهمين.
راجع الوثائق المتعلقة
الإحالة.
مزيد من المعلومات عن أرقام تعريف الأماكن
رقم تعريف المكان المستخدَم في حزمة تطوير برامج الأماكن لنظام التشغيل iOS هو نفسه المعرّف نفسه مُستخدَم في واجهة برمجة تطبيقات الأماكن وحزمة تطوير برامج الأماكن لأجهزة Android وGoogle APIs الأخرى
يمكن أن يشير كلّ رقم تعريف مكان إلى مكان واحد فقط، ولكن يمكن أن يتضمّن مكان واحد أكثر. معرّف مكان واحد
هناك ظروف قد تؤدي إلى حصول المكان على رقم تعريف جديد للمكان. على سبيل المثال، قد يحدث ذلك في حال انتقال نشاط تجاري إلى موقع جغرافي جديد.
عند طلب مكان من خلال تحديد معرّف مكان، يمكنك أن تكون واثقًا من أن ستتلقى دائمًا نفس المكان في الرد (إذا كان المكان لا يزال موجود). ومع ذلك، لاحظ أن الرد قد يحتوي على معرّف مكان مختلفة عن تلك المدرجة في طلبك.
لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على رقم تعريف المكان.