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

اختَر النظام الأساسي: 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 وإنشاء مثيل لها باستخدام طريقة initWithFrame: GMSPanoramaView. إذا تم استخدام هذا باعتباره العرض الوحيد لوحدة التحكم في العرض، يمكن استخدام 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

مواقع "التجوّل الافتراضي" ووجهات النظر (POV)

تتيح لك "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 وإعداده في السمة camera للسمة GMSPanoramaView. سيؤدي ذلك إلى التقاط الكاميرا إلى وجهة النظر الجديدة بدون رسوم متحركة. يمكن إنشاء 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.