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

اختيار النظام الأساسي: نظام التشغيل 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

المواقع الجغرافية في "التجوّل الافتراضي" ووجهات النظر (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 وضبطه على موقع 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