افزودن نشانگر به نقشه

پلاتفرم را انتخاب کنید: Android iOS JavaScript

نشانگرها در نقشه سه‌بعدی

نمونه کد زیر نحوه افزودن نشانگر پایه به نقشه سه‌بعدی را با فراخوانی روش addMarker نشان می‌دهد. برای استفاده از این نمونه کد، دستورالعمل‌های راه‌اندازی و افزودن نقشه سه‌بعدی به برنامه را دنبال کنید تا پروژه Android Studio خود را با نقشه سه‌بعدی پایه راه‌اندازی کنید. سپس، کد زیر را به فایل 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 on را روی شیء نشانگر فراخوانی کنید. مثال زیر نحوه تنظیم شنونده کلیک روی نشانگر را نشان می‌دهد:

  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) انجام دهید.