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