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

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