التجوّل الافتراضي

اختيار النظام الأساسي: نظام التشغيل Android iOS JavaScript

تتيح لك ميزة "التجوّل الافتراضي" في "خرائط Google" استكشاف أماكن حول العالم من خلال صور بزاوية 360 درجة على مستوى الشارع. يمكنك استكشاف المَعالم الشهيرة في العالم ومشاهدة عجائب الدنيا الطبيعية والتنقّل في رحلة أو عرض الجزء الخارجي من نشاطك التجاري.

نظرة عامة

توفّر تكنولوجيا "التجوّل الافتراضي من Google" إطلالات بانورامية بزاوية 360 درجة من الطرق المحدّدة في جميع أنحاء منطقة تغطيتها. تُعد التغطية المتاحة من خلال حزمة SDK هي نفس النتائج بالنسبة إلى تطبيق خرائط Google لنظام التشغيل iOS أو https://maps.google.com/ يمكنك قراءة المزيد عن التجوّل الافتراضي ورؤية المناطق المتاحة على خريطة تفاعلية، على لمحة عن "التجوّل الافتراضي"

توفر حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS خدمة "التجوّل الافتراضي". للحصول على الصور المستخدمة في التجوّل الافتراضي في خرائط Google ومعالجتها. يتم عرض صور التجوّل الافتراضي على هيئة صور بانورامية من داخل عارض التجوّل الافتراضي — من النوع GMSPanoramaView.

صور "التجوّل الافتراضي" البانورامية

كل صورة بانورامية في التجوّل الافتراضي هي عبارة عن صورة أو مجموعة من الصور التي توفر عرض بزاوية 360 درجة من موقع واحد. تتوافق الصور مع الإسقاط المتساوي المستطيلات إسقاط (Plate Carrée)، والذي يحتوي على 360 درجة من العرض الأفقي من ناحية كاملة) و180 درجة من العرض الرأسي (من أعلى مباشرة إلى مباشرةً). تحدد الصورة البانورامية بزاوية 360 درجة العرض على كرة مع التفاف الصورة بالسطح الثنائي الأبعاد الكرة.

يمكن الاطّلاع على مناظر بانورامية في "التجوّل الافتراضي" باستخدام العنصر GMSPanoramaView. هذا النمط عارضًا يعرض البانوراما على شكل كرة، الكاميرا في منتصفها. يمكنك التحكم برمجيًا في اتجاه الكاميرا، بالإضافة إلى خصائص متعددة لتخصيص العارض.

الوصول إلى بيانات "التجوّل الافتراضي"

يتم تحديد الصور البانورامية للتجوّل الافتراضي بإحدى قطعتين من البيانات الوصفية:

panoramaID
المعرّف الفريد لصورة بانوراما في "التجوّل الافتراضي". هذا panoramaID وقد تتغير بمرور الوقت، وهي ليست مناسبة على المدى الطويل أو غير قابل للتغيير المرجع. من الأفضل استخدام panoramaID لتوفير إمكانية الوصول الآلي إلى صور "التجوّل الافتراضي" المختلفة.
coordinate
الموقع الجغرافي الدقيق لهذه الصورة، ويتم التعبير عنه CLLocationCoordinate2D استخدام coordinate في التخزين الدائم لموقع بانوراما، أو ترجمة إجراءات المستخدم على الخريطة إلى صورة التجوّل الافتراضي.

يتم تخزين كلّ من panoramaID وcoordinate كسمات للسمة كائن GMSPanorama. يمكنك طلب GMSPanorama من GMSPanoramaService باستخدام coordinate أو panoramaID. تشير رسالة الأشكال البيانية فإن الكائن الناتج سيتضمن جزأين من البيانات الوصفية، بالإضافة إلى صفيف روابط إلى صور بانورامية قريبة.

تعيين موقع الصورة البانورامية

يمكن تعيين موقع بانوراما التجوّل الافتراضي استنادًا إلى التنسيق.

  • تطلب الطريقة moveNearCoordinate عرض بانوراما بالقرب من التنسيق.

  • تشبه طريقة moveNearCoordinate:radius الطريقة السابقة، ولكنها تسمح لك بتحديد نطاق بحث بالأمتار حول الإحداثي.

  • تتيح لك الطريقة moveNearCoordinate:source تحديد مصدر. يكون المصدر مفيدًا إذا كنت تريد تقييد التجوّل الافتراضي للبحث فقط عن والصور البانورامية الموجودة بالخارج. بشكل افتراضي، تكون الصور البانورامية للمواقع إما بالداخل أو الخارج. تجدر الإشارة إلى أنّ الصور البانورامية الخارجية قد لا تكون متوفّرة الموقع المحدد.

  • تتيح لك الطريقة moveNearCoordinate:radius:source تحديد كل من نصف قطر الدائرة والمصدر.

عرض صور "التجوّل الافتراضي"

إضافة مُشاهد في "التجوّل الافتراضي"

في ما يلي الخطوات الأساسية لإضافة مشاهد:

  1. (مرّة واحدة) اتّبِع الخطوات الواردة في مقالة البدء للحصول على حزمة تطوير البرامج (SDK). الحصول على مفتاح وإضافة أطر العمل المطلوبة.
  2. إنشاء ViewController أو تعديلها إذا كانت الصورة البانورامية ستظهر عند تصبح وحدة التحكم في طريقة العرض هذه مرئية، فتأكد من إنشائها ضمن طريقة loadView.
  3. إنشاء فئة GMSPanoramaView وإنشاء مثيل لها باستخدام السمة طريقة GMSPanoramaView initWithFrame:. إذا تم استخدام هذه السمة العرض الوحيد لوحدة التحكم بالعرض، ثم يمكن استخدام CGRectZero كعرض الإطار - سيتم تغيير حجم الخريطة تلقائيًا.
  4. ضبط عنصر GMSPanoramaView على أنه عرض وحدة التحكم في العرض، على سبيل المثال self.view = panoView;
  5. اضبط الموقع الجغرافي لصورة "التجوّل الافتراضي" باستخدام طريقة مثل moveNearCoordinate:.

يضيف المثال التالي عارض التجوّل الافتراضي إلى أحد التطبيقات.

Swift

import GoogleMaps

class StreetView: UIViewController {

  override func loadView() {
    let panoView = GMSPanoramaView(frame: .zero)
    self.view = panoView

    panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))
  }
}
      

Objective-C

#import "StreetView.h"
@import GoogleMaps;

@interface StreetView ()

@end

@implementation StreetView

- (void)loadView {
  GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
  self.view = panoView;

  [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)];
}

@end
      

تخصيص العارض

يمكنك تخصيص العارض من خلال تحديد الإيماءات المتاحة. من الإعداد التلقائي والتحريك والتكبير/التصغير والانتقال إلى صور بانورامية متجاورة. يتم التحكّم في الإيماءات الفردية من خلال خصائص GMSPanoramaView. تمكّن هذه الخصائص الإيماءات التي يتحكم فيها المستخدم أو توقِفها؛ آلي تظل التغييرات ممكنة عند إيقاف الإيماءة.

orientationGestures
ما إذا كان بإمكان المستخدم إعادة توجيه الكاميرا من خلال النقر أو السحب اضبط القيمة على NO لإيقاف تغييرات الاتجاه في الكاميرا.
zoomGestures
ما إذا كان بإمكان المستخدم التكبير أو التصغير بإصبعَين. تم الضبط على "NO" لتعطيل التكبير/التصغير.
navigationGestures
ما إذا كان المستخدم سيتمكّن من تغيير البانوراما المرئية المستخدمون قد يستخدم نقرة واحدة على روابط التنقّل أو النقر مرّتين على طريقة العرض لتغييرها. تم ضبط الصور البانورامية على NO لإيقاف التغييرات في التنقل.

يمكنك تمكين أو تعطيل جميع الإيماءات في وقت واحد باستخدام طريقة setAllGesturesEnabled:.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

تشغيل "التجوّل الافتراضي" باستخدام مخطط عنوان URL

يمكن الاطّلاع على صور "التجوّل الافتراضي من Google" من داخل تطبيق "خرائط Google" لأجهزة iOS . يمكنك تشغيل تطبيق "خرائط Google" لأجهزة iOS في وضع التجوّل الافتراصيل باستخدام مخطّط عنوان URL comgooglemaps من خلال ضبط المَعلمة mapmode على streetview. يظهر أدناه مثال على عنوان URL يؤدي إلى تشغيل "التجوّل الافتراضي". لمزيد من المعلومات، راجِع مخطط عنوان URL. التوثيق.

comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

المواقع الجغرافية ونقاط الرؤية في "التجوّل الافتراضي"

يتيح لك GMSPanoramaCamera ضبط وجهات النظر في ميزة "التجوّل الافتراضي". الكاميرا كمزيج من العنوان ودرجة الصوت والتكبير/التصغير.

وستوجِّه مجموعات المقتطفات أدناه الكاميرا إلى الجنوب وأسفلها قليلاً.

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

الاتجاه

يحدد موقع التجوّل الافتراضي موضع تركيز الكاميرا الصورة، لكنه لا يحدد اتجاه الكاميرا لهذه الصورة. لهذا الغرض، يعرّف الكائن GMSOrientation خاصيتين:

  • تحدِّد heading زاوية الدوران حول موقع الكاميرا. بالدرجات النسبية من الشمال الحقيقي. يتم قياس الاتجاهات باتجاه عقارب الساعة: الاتجاه الحقيقي للشمال هو 0، والشرق هو 90، والجنوب هو 180، والغرب هو 270.
  • يحدِّد pitch (0 التلقائي) التباين في الزاوية "أعلى" أو "أسفل" من الميل التلقائي الأولي للكاميرا، والذي يكون غالبًا (ولكن ليس دائمًا) ممدودًا أفقيًا. (على سبيل المثال، من المرجّح أن تعرض صورة تم التقاطها على تلة ميلًا تلقائيًا غير أفقي). يتم قياس زوايا الاقتراح باستخدام القيم الموجبة التي تبحث لأعلى (حتى +90 درجة لأعلى وعمودي درجة الصوت التلقائية) والقيم السالبة للأسفل (إلى -90 درجة) مباشر لأسفل ورأسي إلى طبقة الصوت الافتراضية).

Zoom

تدعم ميزة "التجوّل الافتراضي" مستويات مختلفة من تفاصيل الصورة من خلال استخدام التكبير/التصغير. يمكنك ضبط مستوى التكبير/التصغير آليًا، أو يمكن للمستخدمين تغيير المستوى في العارض عن طريق الضغط عليه للتكبير أو التصغير.

تحريك الكاميرا

بعد إنشاء GMSPanoramaView، وإعداده أو الكاميرا التلقائية، يمكنك تغييرها بإحدى الطرق العديدة. عند تغيير يكون لديك خيار تحريك حركة الكاميرا الناتجة. تشير رسالة الأشكال البيانية دمج الرسوم المتحركة بين سمات الكاميرا الحالية وخصائص الكاميرا الجديدة سمات الكاميرا.

يمكنك تعديل العنصر GMSPanoramaCamera وضبطه على موقع GMSPanoramaView على camera. سيؤدي هذا إلى تثبيت الكاميرا في الهاتف الجديد وجهة نظر بدون رسوم متحركة. قد يتم إنشاء GMSCameraPosition لضبط أي مزيج من الاتجاه والتكبير/التصغير.

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

يمكنك تحريك تأثير انتقالي من خلال استدعاء طريقة animateToCamera:animationDuration: من إجمالي GMSPanoramaView بالإضافة إلى ذلك، يمكنك التحكّم في الكاميرا باستخدام Core Animation. تم المتاحة من خلال CALayer المخصص على GMSPanoramaView، GMSPanoramaLayer

العلامات في "التجوّل الافتراضي"

يمكن للكائن GMSPanoramaView عرض محدّدات الخريطة. يمكنك استخدام صفحة كائن GMSMarker نفسه على GMSMapView أو الكائن GMSPanoramaView من خلال ضبط الخصائص المقابلة له:

Swift

// Create a marker at the Eiffel Tower
let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294)
let marker = GMSMarker(position: position)

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView

// Add the marker to a GMSMapView object named mapView
marker.map = mapView
      

Objective-C

// Create a marker at the Eiffel Tower
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294);
GMSMarker *marker = [GMSMarker markerWithPosition:position];

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView;

// Add the marker to a GMSMapView object named mapView
marker.map = mapView;
      

سيتغير حجم العلامات كدالة على المسافة بين وموقع GMSCameraView الجغرافي. إذا أصبحت هذه المسافة أكثر مما ينبغي رائعة، ستصبح العلامة صغيرة جدًا بحيث لا يمكن عرضها وستكون مخفية عن مشاهدة.

اضبط السمة panoramaView على nil لإزالتها من GMSPanoramaView

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

الفعاليات

يمكنك الاستماع إلى الأحداث التي تقع على بانوراما التجوّل الافتراضي، مثل عندما ينقر المستخدم على البانوراما. للاستماع إلى الأحداث، يجب تنفيذ GMSPanoramaViewDelegate. اطّلِع على الدليل العام للأحداث وقائمة الطرق على GMSPanoramaViewDelegate.