تفاصيل المكان (جديد)

اختيار النظام الأساسي: Android iOS JavaScript خدمة الويب

توفّر حزمة تطوير البرامج (SDK) لأماكن على نظام التشغيل iOS (الإصدار الجديد) لتطبيقك معلومات غنية عن الأماكن، بما في ذلك اسم المكان وعنوانه، والموقع الجغرافي الذي تم تحديده من خلال إحداثيات خط العرض/خط الطول، ونوع المكان (مثل النادي الليلي ومتجر الحيوانات الأليفة والمتحف) وغير ذلك. للوصول إلى هذه المعلومات لمكان معيّن، يمكنك استخدام معرّف المكان، وهو معرّف ثابت يحدّد مكانًا بشكل فريد.

الحصول على تفاصيل المكان

تحتوي فئة GMSPlace على معلومات عن مكان معيّن، بما في ذلك جميع حقول البيانات المعروضة في حقول بيانات الأماكن (جديد). يمكنك الحصول على كائن GMSPlace من خلال استدعاء GMSPlacesClient fetchPlaceWithRequest:، مع تمرير كائن GMSFetchPlaceRequest وطريقة callback من النوع GMSPlaceResultCallback.

يحدِّد عنصر GMSFetchPlaceRequest ما يلي:

  • (سمة مطلوبة) رقم تعريف المكان، وهو معرّف فريد للمكان في قاعدة بيانات أماكن Google وعلى "خرائط Google".
  • (مطلوبة) قائمة الحقول التي سيتم عرضها في عنصر GMSPlace، وتُعرف أيضًا باسم قناع الحقل، على النحو المحدّد من قِبل GMSPlaceProperty. إذا لم تحدِّد حقلًا واحدًا على الأقل في قائمة الحقول، أو إذا حذفت قائمة الحقول، سيعرض الطلب خطأ.
  • (اختياري) رمز المنطقة المستخدَم لتنسيق الردّ
  • (اختياري) الرمز المميّز للجلسة المستخدَم لإنهاء جلسة "الملء التلقائي (جديد)"

تقديم طلب للحصول على تفاصيل المكان

يحصل هذا المثال على مكان حسب رقم التعريف، مع تمرير المَعلمات التالية:

  • معرّف المكان ChIJV4k8_9UodTERU5KXbkYpSYs
  • قائمة حقول تحدّد عرض اسم المكان وعنوان URL للموقع الإلكتروني
  • GMSPlaceResultCallback للتعامل مع النتيجة

تستدعي واجهة برمجة التطبيقات طريقة ردّ الاتصال المحدّدة، مع تمرير عنصر GMSPlace. إذا لم يتم العثور على المكان، يكون عنصر المكان فارغًا.

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil)

client.fetchPlace(with: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];

حزمة تطوير البرامج Swift لأماكن Google لنظام التشغيل iOS (إصدار تجريبي)

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

استجابة تفاصيل المكان

تعرِض سمة "تفاصيل المكان" عنصرًا من نوع GMSPlace يحتوي على تفاصيل عن المكان. لا تتم تعبئة سوى الحقول المحدّدة في قائمة الحقول في عنصر GMSPlace.

الحصول على حالة "مفتوح"

يحتوي عنصر GMSPlacesClient على دالة عضوية تُسمى isOpenWithRequest (isOpenRequest في Swift وisPlaceOpenRequest في GooglePlacesSwift) تعرض استجابة تشير إلى ما إذا كان المكان مفتوحًا حاليًا استنادًا إلى الوقت المحدّد في الطلب.

تأخذ هذه الطريقة وسيطة واحدة من النوع GMSPlaceIsOpenWithRequest تحتوي على ما يلي:

  • عنصر GMSPlace أو سلسلة تحدّد معرّف مكان لمزيد من المعلومات عن إنشاء عنصر "الموقع الجغرافي" باستخدام الحقول اللازمة، يُرجى الاطّلاع على تفاصيل الموقع الجغرافي.
  • عنصر اختياري من النوع NSDate (Obj-C) أو Date (Swift) يحدِّد الوقت الذي تريد التحقّق منه. إذا لم يتم تحديد وقت، يكون الإعداد التلقائي هو الآن.
  • طريقة GMSPlaceOpenStatusResponseCallback لمعالجة الاستجابة
  • >

تتطلّب طريقة GMSPlaceIsOpenWithRequest ضبط الحقول التالية في كائن GMSPlace:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

إذا لم يتم توفير هذه الحقول في عنصر "الموقع الجغرافي"، أو إذا تم ضبط معرّف مكان، تستخدم الطريقة GMSPlacesClient GMSFetchPlaceRequest: لجلبها.

ردّ واحد (isOpenWithRequest)

تعرض isOpenWithRequest عنصر GMSPlaceIsOpenResponse يحتوي على قيمة منطقية باسم status تشير إلى ما إذا كان النشاط التجاري مفتوحًا أو مغلقًا أو إذا كانت الحالة غير معروفة.

اللغة القيمة في حال كانت مفتوحة القيمة في حال الإغلاق القيمة في حال كانت الحالة غير معروفة
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (إصدار تجريبي) true false nil

الفوترة لحساب isOpenWithRequest

مثال: تقديم طلب GMSPlaceIsOpenWithRequest

يوضّح المثال التالي كيفية إعداد GMSPlaceIsOpenWithRequest داخل عنصر GMSPlace حالي.

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];
  
          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }
  
            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

GooglePlacesSwift

          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

المعلمات المطلوبة

استخدِم العنصر GMSFetchPlaceRequest لتحديد المَعلمات المطلوبة.

معرّف المكان

إنّ معرّف المكان المستخدَم في حزمة تطوير البرامج (SDK) للأماكن لنظام التشغيل iOS هو المعرّف نفسه المستخدَم في واجهة برمجة التطبيقات Places API وحزمة تطوير البرامج (SDK) للأماكن لنظام التشغيل Android وواجهات برمجة تطبيقات Google الأخرى. يمكن أن يشير كل معرّف مكان إلى مكان واحد فقط، ولكن يمكن أن يتضمّن مكان واحد أكثر من معرّف مكان واحد.

هناك ظروف قد تؤدي إلى حصول مكان على معرّف مكان جديد. على سبيل المثال، قد يحدث ذلك إذا نقل نشاط تجاري إلى موقع جغرافي جديد.

عند طلب مكان من خلال تحديد معرّف مكان، يمكنك التأكّد من أنّه سيظهر لك المكان نفسه دائمًا في الردّ (إذا كان المكان لا يزال موجودًا). يُرجى العلم أنّ الردّ قد يحتوي على رقم تعريف مكان مختلف عن الرقم الوارد في طلبك.

قائمة الحقول

عند طلب تفاصيل المكان، يجب تحديد البيانات التي تريد إعادتها في عنصر GMSPlace للمكان كقناع حقل. لتحديد قناع الحقل، اضبط صفيفًا من القيم من GMSPlaceProperty إلى كائن GMSFetchPlaceRequest. إنّ إخفاء الحقول هو ممارسة تصميم جيدة لضمان عدم طلب بيانات غير ضرورية، ما يساعد في تجنب وقت المعالجة غير الضروري ورسوم الفوترة.

حدِّد حقلًا واحدًا أو أكثر من الحقول التالية:

يُرسِل المثال التالي قائمة بوحدتَي قيمة حقل لتحديد أنّ عنصر GMSPlace الذي يعرضه الطلب يحتوي على الحقلَين name وplaceID:

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

حزمة تطوير البرامج Swift لأماكن Google لنظام التشغيل iOS (إصدار تجريبي)

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

المعلمات الاختيارية

استخدِم العنصر GMSFetchPlaceRequest لتحديد المَعلمات الاختيارية.

regionCode

رمز المنطقة المستخدَم لتنسيق الاستجابة، ويتم تحديده على أنّه قيمة رمز CLDR المكوّن من حرفَين. يمكن أن تؤثر هذه المَعلمة أيضًا بشكلٍ متحيّز في نتائج البحث. لا تتوفّر قيمة تلقائية.

إذا كان اسم البلد في حقل العنوان في الردّ يتطابق مع رمز المنطقة، يتم حذف رمز البلد من العنوان.

تتطابق معظم رموز CLDR مع رموز ISO 3166-1، مع بعض الاستثناءات البارزة. على سبيل المثال، رمز المستوى الأعلى للمنطقة الجغرافية للمملكة المتحدة هو "uk" (‎.co.uk)، بينما رمزه وفقًا لمعيار ISO 3166-1 هو "gb" (من الناحية الفنية لموضوع "المملكة المتحدة لبريطانيا العظمى وأيرلندا الشمالية"). يمكن أن تؤثّر المَعلمة في النتائج استنادًا إلى القانون الساري.

sessionToken

علامات الجلسات هي سلاسل ينشئها المستخدمون وتتتبّع طلبات الإكمال التلقائي (الجديدة) على أنّها "جلسات". يستخدم ميزة "الإكمال التلقائي (جديد)" الرموز المميّزة للجلسات بهدف تجميع مراحل طلب البحث واختيار مكانه في عملية بحث الإكمال التلقائي للمستخدِم في جلسة منفصلة لأغراض الفوترة. يتمّ تمرير الرموز المميّزة للجلسات إلى طلبات بيانات تفاصيل الأماكن (جديد) التي تلي طلبات بيانات الإكمال التلقائي (جديد). لمزيد من المعلومات، يُرجى الاطّلاع على رموز الجلسات.

عرض الإسنادات في تطبيقك

عندما يعرض تطبيقك معلومات تم الحصول عليها من GMSPlacesClient، مثل الصور والمراجعات، يجب أن يعرض التطبيق أيضًا الإسنادات المطلوبة.

على سبيل المثال، تحتوي السمة reviews للكائن GMSPlacesClient على صفيف يصل إلى خمسة كائنات GMSPlaceReview. يمكن أن يحتوي كل عنصر GMSPlaceReview على إحالات واقتباسات للمؤلف. إذا عرضت المراجعة في تطبيقك، يجب أيضًا عرض أيّ مصدر أو مصدر للمؤلف.

لمزيد من المعلومات، يُرجى الاطّلاع على المستندات المتعلّقة بموضوع الإحالات.