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

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