تراكبات الأرض

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

تراكبات الأرض هي تراكبات على الخريطة مرتبطة بتنسيقات خطوط الطول/العرض، ولذلك تتحرك عند سحب الخريطة أو تكبيرها/تصغيرها.

مقدمة

التراكب الأرضي هو صورة يتم تثبيتها على خريطة. على عكس العلامات، يتم توجيه تراكبات الأرض على سطح الأرض بدلاً من الشاشة، لذلك سيؤدي تدوير الخريطة أو إمالتها أو تكبيرها/تصغيرها إلى تغيير اتجاه الصورة.

لإضافة تراكب أرضية، أنشِئ كائن GMSGroundOverlay يحدّد كلاً من الرمز والحدود. سيؤدي الفشل في تحديد أي منهما إلى عدم ظهور التراكب الأرضي على الخريطة. يمكنك اختياريًا تحديد إعدادات إضافية من شأنها أن تؤثر في موضع الصورة على الخريطة. بعد تحديد الخيارات الضرورية، اضبط السمة map لهذا العنصر لإضافة التراكب.

إضافة تراكب

  1. إنشاء مثيل لكائن GMSGroundOverlay جديد
  2. اضبط السمة icon على مثيل لـ UIImage.
  3. اضبط السمة bounds على مثيل لـ GMSCoordinateBounds. وتمثّل الحدود الجانبَين الجنوبي الغربي والشمالي الشرقي من الصورة.
  4. اضبط السمات الاختيارية، مثل bearing وzoomLevel، كما تريد.
  5. اضبط السمة map - ستظهر الصورة على الخريطة.

يوضّح المثال التالي كيفية إضافة طبقة أرضية إلى عنصر GMSMapView حالي.

Swift

let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)
let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)
let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
let icon = UIImage(named: "newark_nj_1922")

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView
      

Objective-C

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
                                                                        coordinate:northEast];

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"];
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;
      

إزالة تراكب

يمكنك إزالة طبقة أرضية من الخريطة عن طريق ضبط سمة map في GMSGroundOverlay على nil. بدلاً من ذلك، يمكنك إزالة جميع التراكبات (بما في ذلك التراكبات الأرضية الموجودة على الخريطة حاليًا من خلال طلب طريقة GMSMapView clear.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

إذا أردت إجراء تعديلات على طبقة أرضية بعد إضافتها إلى الخريطة، تأكَّد من الاحتفاظ بالكائن GMSGroundOverlay. يمكنك تعديل التراكب الأرضي لاحقًا عن طريق إجراء تغييرات على هذا الكائن.

Swift

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

// ...

overlay.isTappable = true
      

Objective-C

GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

// ...
overlay.tappable = YES;
      

فعاليات

يمكنك الاستماع إلى الأحداث التي تقع على الخريطة، مثل عندما ينقر المستخدم على تراكب. للاستماع إلى الأحداث، يجب تنفيذ بروتوكول GMSMapViewDelegate. يمكنك الاطّلاع على دليل الأحداث وقائمة الطُرق على GMSMapViewDelegate.