تتيح لك ميزة "التجوّل الافتراضي" في "خرائط 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
تحديد كل من نصف قطر الدائرة والمصدر.
عرض صور "التجوّل الافتراضي"
إضافة مُشاهد في "التجوّل الافتراضي"
في ما يلي الخطوات الأساسية لإضافة مشاهد:
- (مرّة واحدة) اتّبِع الخطوات الواردة في مقالة البدء للحصول على حزمة تطوير البرامج (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
وضبطه على
موقع 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
.