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

اختيار النظام الأساسي: 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. يوفر هذا الكائن عارضًا سيصور البانوراما على شكل كرة، مع وجود كاميرا في وسطها. ويمكنك التحكم آليًا في اتجاه الكاميرا، بالإضافة إلى العديد من الخصائص التي تخصص العارض.

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

يتم تحديد الصور البانورامية 360 درجة لميزة "التجوّل الافتراضي" من خلال أحد جزأين من البيانات الوصفية:

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 وضبطه على سمة 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.