تفاصيل المكان

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

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

تفاصيل المكان

تشير رسالة الأشكال البيانية GMSPlace الفئة معلومات حول مكان معين. يمكنك الحصول على GMSPlace بالطرق التالية:

عند طلب مكان، يجب عليك تحديد أنواع بيانات الأماكن التي إرجاع. لإجراء ذلك، عليك ضبط 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 الأخرى

يمكن أن يشير كلّ رقم تعريف مكان إلى مكان واحد فقط، ولكن يمكن أن يتضمّن مكان واحد أكثر. معرّف مكان واحد

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

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

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على رقم تعريف المكان.