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

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