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

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