تراكبات الأرض هي تراكبات على الخريطة مرتبطة بإحداثيات خطوط الطول/العرض، ولذلك تتحرك عند سحب الخريطة أو تكبيرها/تصغيرها.
مقدمة
التراكب الأرضي هو صورة ثابتة على خريطة. على عكس العلامات، يتم توجيه تركيبات الأرض على سطح الأرض بدلاً من الشاشة، لذا فإن تدوير الخريطة أو إمالتها أو تكبيرها/تصغيرها سيغير اتجاه الصورة.
لإضافة تراكب أرضي، يمكنك إنشاء كائن 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
.