1

我在我的应用程序中使用了 HMS 地图。我正在使用位置工具包搜索选择某个位置,并使用自定义标记在地图中显示。我可以完美地获得纬度和经度。我也可以在几天前在地图上显示选定的位置。但目前无法显示。我没有更改代码中的任何内容。那么应该是什么问题呢?

private fun setMapWithCurrentLoc(lastLocation: android.location.Location?) {
    if (lastLocation != null) {
        val location = LatLng(lastLocation.latitude, lastLocation.longitude)
        if (map != null) {
            map!!.clear()
            map!!.addCircle(
                    CircleOptions()
                            .radius(500.0)
                            .center(location)
                            .clickable(false)
                            .fillColor(ContextCompat.getColor(requireContext(), R.color.purple_trans))
                            .strokeColor(ContextCompat.getColor(requireContext(), R.color.transparent))
                            .strokeWidth(1f)
            )
            map!!.addMarker(
                    MarkerOptions()
                            .position(location)
                            .icon(
                                    BitmapDescriptorFactory.fromBitmap(
                                            Utils.createCustomMarker(
                                                    requireContext(),
                                                    childUrl!!
                                            )
                                    )
                            )
                            .draggable(true)
            )
            map!!.animateCamera(
                    CameraUpdateFactory.newLatLngZoom(
                            LatLng(location.latitude, location.longitude),
                            currentZoomSetting.toFloat()
                    )
            )

        }
    }
}
4

1 回答 1

0

尝试更改您的一些代码并在 Activity 中进行测试com.huawei.hms.maps.SupportMapFragment,它可以正常工作:</p>

override fun onMapReady(paramHuaweiMap: HuaweiMap?) {
    Log.i(TAG, "onMapReady: ")
    hMap = paramHuaweiMap
    hMap!!.isMyLocationEnabled = true
    setMapWithCurrentLoc(LatLng(48.893478, 2.334595))
}

private fun setMapWithCurrentLoc(location: LatLng) {
    var map = hMap
    if (map != null) {
        map!!.clear()
        map!!.addCircle(
            CircleOptions()
                .radius(500.0)
                .center(location)
                .clickable(false)
                .fillColor(ContextCompat.getColor(this, R.color.colorAccent))
                .strokeColor(ContextCompat.getColor(this, R.color.colorAccent))
                .strokeWidth(1f)
        )
        map!!.addMarker(
            MarkerOptions()
                .position(location)
                .icon(
                    BitmapDescriptorFactory.fromResource(
                        R.mipmap.ic_launcher
                    )
                )
                .draggable(true)
        )

        map!!.animateCamera(
            CameraUpdateFactory.newLatLngZoom(
                LatLng(location.latitude, location.longitude),
                11f
            )
        )
    }
}

implementation 'com.huawei.hms:maps:6.0.0.301' 可以在你的代码中测试它是否有效。

于 2021-08-03T02:11:55.837 回答