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

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