如何在相机动画完成后在地图上添加标记



我试图绘制显示用户当前位置的标记,尽管我在初始化地图时启用了setMycurrentLocation,所以我得到了当前位置的纬度和经度。现在我要做的是在当前位置显示标记。我是这样做的

googleMap.animateCamera(CameraUpdateFactory.zoomTo(15), 8000, new GoogleMap.CancelableCallback() {
                                    @Override
                                    public void onFinish() {
                                        Handler handler1 = new Handler();
                                        handler1.postDelayed(new Runnable() {
                                            public void run() {
                                                addMarker(googleMap.getLocation.getLatitude(), googleMap.getLocation.getLatitude());

和addMarker函数是这样的

private void addMarker(Double Lat, Double Long) {
        /** Make sure that the map has been initialised **/
        if (null != googleMap) {
            googleMap.addMarker(new MarkerOptions()
                            .position(new LatLng(Lat, Long))
                            .title("You")
                            .draggable(true)
            );
        }
    }

所以这个添加标记的代码只有在我尝试使用地图动画的onfinished函数之外才有效,但是

有时它会给我一个空,因为有时它无法从地图中获得位置。所以我试着把这个放在相机停止动画之后。

但在我的情况下,它不工作,任何想法?或者别的什么方法能做到在摄像机停止动画时添加标记吗?

从注释和代码,似乎你想在地图上的用户位置的多个标记,但你正在使用获取用户位置的代码是不可以的(我找不到googleMap。getLocation(可能代码不完整)。谷歌地图的getMyLocation()方法已弃用:https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.html getMyLocation ()

此方法已弃用。

使用com.google.android.gms.location.FusedLocationProviderApi代替。FusedLocationProviderApi提供了改进的位置查找和功能使用"我的位置"蓝点。看到例如示例应用程序文件夹中的MyLocationDemoActivity示例代码,或位置开发指南。

链接指向https://developers.google.com/maps/documentation/android/location

它允许你使用FusedLocationProvider。你必须查看指南来获取用户位置。当你完成后,你可以把代码放在onFinish回调中。

如果您需要帮助的融合位置提供商也许你应该检查已经存在的问题或打开一个新的适当的标签!

最新更新