此示例演示如何监听和处理地图上的一些事件。
如需了解详情,请参阅相关文档。
开始使用
您必须先配置开发环境,然后才能试用该示例代码。如需了解详情,请参阅 Maps SDK for Android 代码示例。
查看代码
Kotlin
class EventsDemoActivity : AppCompatActivity(), OnMapClickListener, OnMapLongClickListener, OnCameraIdleListener, OnMapReadyCallback { private lateinit var tapTextView: TextView private lateinit var cameraTextView: TextView private lateinit var map: GoogleMap override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.events_demo) tapTextView = findViewById(R.id.tap_text) cameraTextView = findViewById(R.id.camera_text) val mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment? mapFragment?.getMapAsync(this) } override fun onMapReady(googleMap: GoogleMap) { // return early if the map was not initialised properly map = googleMap map.setOnMapClickListener(this) map.setOnMapLongClickListener(this) map.setOnCameraIdleListener(this) } override fun onMapClick(point: LatLng) { tapTextView.text = "tapped, point=$point" } override fun onMapLongClick(point: LatLng) { tapTextView.text = "long pressed, point=$point" } override fun onCameraIdle() { if (!::map.isInitialized) return cameraTextView.text = map.cameraPosition.toString() } }
Java
public class EventsDemoActivity extends AppCompatActivity implements OnMapClickListener, OnMapLongClickListener, OnCameraIdleListener, OnMapReadyCallback { private TextView tapTextView; private TextView cameraTextView; private GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.events_demo); tapTextView = findViewById(R.id.tap_text); cameraTextView = findViewById(R.id.camera_text); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap map) { this.map = map; this.map.setOnMapClickListener(this); this.map.setOnMapLongClickListener(this); this.map.setOnCameraIdleListener(this); } @Override public void onMapClick(LatLng point) { tapTextView.setText("tapped, point=" + point); } @Override public void onMapLongClick(LatLng point) { tapTextView.setText("long pressed, point=" + point); } @Override public void onCameraIdle() { cameraTextView.setText(map.getCameraPosition().toString()); } }
克隆并运行示例
您必须拥有 Git,才能在本地运行此示例。以下命令会克隆示例应用代码库。
git clone git@github.com:googlemaps-samples/android-samples.git
将示例项目导入到 Android Studio:
- 在 Android Studio 中,依次选择 File > New > Import Project。
前往代码库的保存位置并选择 Kotlin 或 Java 的项目目录:
- Kotlin:
PATH-REPO/android-samples/ApiDemos/kotlin
- Java:
PATH-REPO/android-samples/ApiDemos/java
- Kotlin:
- 选择 Open。Android Studio 会使用 Gradle 构建工具来构建您的项目。
- 在项目的
local.properties
文件所在的同一目录中,创建一个空白secrets.properties
文件。如需了解详情,请参阅将您的 API 密钥添加到项目中。 在
secrets.properties
中添加以下字符串,并将 YOUR_API_KEY 替换为您的 API 密钥的值:MAPS_API_KEY=YOUR_API_KEY
- 运行应用。