تتيح لك ميزة "التجوّل الافتراضي في خرائط 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
بتحديد نطاق جغرافي ومصدر معًا.
عرض صور التجوّل الافتراضي
إضافة عارض التجوّل الافتراضي
في ما يلي الخطوات الأساسية لإضافة مُشاهد:
- (بعد) اتّبِع الخطوات الواردة في البدء للحصول على حزمة تطوير البرامج (SDK) والحصول على مفتاح وإضافة أُطر العمل المطلوبة.
- إنشاء
ViewController
أو تعديله إذا سيتم عرض البانوراما عندما تصبح وحدة التحكم في العرض هذه مرئية، فاحرص على إنشائها بطريقةloadView
. - أنشِئ فئة
GMSPanoramaView
وأنشِئ مثيلاً لها باستخدام طريقةGMSPanoramaView
initWithFrame:
. إذا تم استخدام هذا باعتباره العرض الوحيد لوحدة التحكم في العرض، يمكن استخدامCGRectZero
كإطار للخريطة - سيتم تغيير حجم الخريطة تلقائيًا. - اضبط الكائن
GMSPanoramaView
كعرض لوحدة التحكّم في الملف الشخصي، مثلself.view = panoView;
. - يمكنك ضبط الموقع الجغرافي لصورة "التجوّل الافتراضي" باستخدام طريقة مثل
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
.