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