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