向地图添加标记

请选择平台: Android iOS JavaScript

3D 地图上的标记

以下代码示例演示了如何通过调用 addMarker 方法向 3D 地图添加基本标记。如需使用此代码示例,请按照设置向应用添加 3D 地图中的说明,使用基本 3D 地图设置 Android Studio 项目。然后,将以下代码添加到 MainActivity.kt 文件中:

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

...

// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.SATELLITE)

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) 来实现此目的。