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