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

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