تراكبات الأرض هي تراكبات على الخريطة مرتبطة بتنسيقات خطوط الطول/العرض، ولذلك تتحرك عند سحب الخريطة أو تكبيرها/تصغيرها.
مقدمة
التراكب الأرضي هو صورة يتم تثبيتها على خريطة. على عكس العلامات، يتم توجيه تراكبات الأرض على سطح الأرض بدلاً من الشاشة، لذلك سيؤدي تدوير الخريطة أو إمالتها أو تكبيرها/تصغيرها إلى تغيير اتجاه الصورة.
لإضافة تراكب أرضية، أنشِئ كائن GMSGroundOverlay
يحدّد كلاً من الرمز والحدود. سيؤدي الفشل في تحديد أي منهما إلى
عدم ظهور التراكب الأرضي على الخريطة. يمكنك اختياريًا تحديد إعدادات إضافية من شأنها
أن تؤثر في موضع الصورة على الخريطة. بعد تحديد الخيارات الضرورية، اضبط السمة map
لهذا العنصر لإضافة التراكب.
إضافة تراكب
- إنشاء مثيل لكائن
GMSGroundOverlay
جديد - اضبط السمة
icon
على مثيل لـUIImage
. - اضبط السمة
bounds
على مثيل لـGMSCoordinateBounds
. وتمثّل الحدود الجانبَين الجنوبي الغربي والشمالي الشرقي من الصورة. - اضبط السمات الاختيارية، مثل
bearing
وzoomLevel
، كما تريد. - اضبط السمة
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
.