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

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

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

نظرة عامة

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

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

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

كل صورة بانورامية في "التجوّل الافتراضي" هي صورة أو مجموعة صور توفّر عرضًا كاملاً بزاوية 360 درجة من موقع جغرافي واحد. تتوافق الصور مع إسقاط الأسطوانات المتماثلة (Plat 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

مواقع "التجوّل الافتراضي" ونقاط المشاهدة (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) تباين الزاوية "أعلى" أو "أسفل" من درجة الصوت التلقائية الأولية للكاميرا، والتي تكون غالبًا (ولكن ليس دائمًا) أفقيًا. (على سبيل المثال، ستُظهر الصورة التي يتم التقاطها على تل حدًا تلقائيًا للدرجة غير الأفقية). يتم قياس زواياز زاوية العرض من خلال قيم موجبة للبحث عن القيمة (من +10 درجة إلى الأعلى مباشرةً أو عموديًا وفقًا للدرجة التلقائية) والقيم السالبة (من -90 درجة مباشرةً ومباشرةً إلى حدّ الصوت التلقائي).

توسيع

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

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

بعد إنشاء كاميرا 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. بالإضافة إلى ذلك، يمكنك التحكم في الكاميرا باستخدام ميزة "الصور المتحركة الأساسية". وتُتاح هذه الإمكانية من خلال 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.