إضافة علامة إلى خريطة

اختيار النظام الأساسي: Android iOS JavaScript

العلامات على خريطة ثلاثية الأبعاد

يعرض نموذج الرمز البرمجي التالي كيفية إضافة علامة أساسية إلى خريطة ثلاثية الأبعاد من خلال استدعاء addMarker طريقة. لاستخدام عينة التعليمات البرمجية هذه، اتّبِع التعليمات الواردة في إعداد خريطة ثلاثية الأبعاد وإضافتها إلى تطبيقك لإعداد مشروع استوديو Android باستخدام خريطة ثلاثية الأبعاد أساسية. بعد ذلك، أضِف الرمز البرمجي التالي إلى ملف MainActivity.kt:

// Add imports
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.latLngAltitude

...

// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.setCamera(
    camera {
        center = latLngAltitude {
            latitude = 52.51974795
            longitude = 13.40715553
            altitude = 150.0
        }
        heading = 252.7
        tilt = 79.0
        range = 1500.0
    }
)

// Add a marker using absolute altitude positioning
googleMap3D.addMarker(markerOptions {
    position = latLngAltitude {
        latitude = 52.519605780912585
        longitude = 13.406867190588198
        altitude = 150.0
    }
    label = "Absolute (150m)"
    altitudeMode = AltitudeMode.ABSOLUTE
    isExtruded = true
    isDrawnWhenOccluded = true
    collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
})

الاستماع إلى الأحداث الناتجة عن النقر على العلامة

للاستماع إلى الأحداث الناتجة عن النقر على علامة، استدعِ طريقة setClickListener على عنصر العلامة. يوضّح المثال التالي كيفية ضبط متتبِّع النقرات على علامة:

  marker.setClickListener {
      lifecycleScope.launch(Dispatchers.Main) {
          Toast.makeText(this@MarkersActivity, "Clicked on marker: ${marker.label}", Toast.LENGTH_SHORT)
              .show()
      }
  }

يُرجى العِلم أنّ معالج النقر لا يتم تشغيله على سلسلة التعليمات الرئيسية (أو سلسلة تعليمات واجهة المستخدم). إذا أردت إجراء تغييرات على واجهة المستخدم (مثل عرض رسالة Toast)، عليك الانتقال إلى سلسلة التعليمات الرئيسية. بالنسبة إلى Kotlin، يمكنك إجراء ذلك باستخدام lifecycleScope.launch(Dispatchers.Main).