【问题标题】:How to add marker on google map with Kotlin?如何使用 Kotlin 在谷歌地图上添加标记?
【发布时间】:2020-02-29 13:03:46
【问题描述】:

我是 Android 编程的初学者。我想通过点击地图屏幕在该点添加一个标记。所以我尝试了下面的编码。但它不起作用。

override fun onMapReady(googleMap: GoogleMap) {
    mMap = googleMap

    mMap.setOnMapClickListener(object :GoogleMap.OnMapClickListener {
        override fun onMapClick(latlng :LatLng) {
            val location = LatLng(latlng.latitude,latlng.longitude)
            mMap.addMarker(MarkerOptions().position(location))
        }
    })
}

【问题讨论】:

    标签: android google-maps kotlin


    【解决方案1】:

    GoogleMap 上添加 Marker 之前,我建议清理地图并将相机动画到新的点击位置。

    希望对您有所帮助:

    override fun onMapReady(googleMap: GoogleMap) {
        mMap = googleMap
    
        mMap.setOnMapClickListener(object :GoogleMap.OnMapClickListener {
            override fun onMapClick(latlng :LatLng) {
                // Clears the previously touched position
                mMap.clear();
                // Animating to the touched position
                mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
    
                val location = LatLng(latlng.latitude,latlng.longitude)
                mMap.addMarker(MarkerOptions().position(location))
            }
        })
    }
    

    【讨论】:

    • 感谢您的建议。事实上,我的代码正在运行。在模拟器上不行,但在真机上可以。
    【解决方案2】:
    googleMap!!.addMarker(
                                            MarkerOptions()
                                                .position(
                                                    LatLng(
                                                        mapViewModel!![i].mLongitude,
                                                        mapViewModel!![i].mLatitude
                                                    )
                                                )
                                                .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_mc_one))
                                                .title("" + mapViewModel!![i].mOrganizationName.capitalize())
                                                .snippet("" + mapViewModel!![i].mOrganizationTagLine.capitalize())
                                        )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-16
      • 2017-12-25
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      相关资源
      最近更新 更多