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

时间:2015-07-14 07:38:27

标签: android google-maps

我正在尝试绘制显示用户当前位置的标记,尽管我在初始化时已在地图中启用了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)
            );
        }
    }

所以这个添加标记的代码的和平只有在我尝试使用地图动画的完成功能的一面时才有效,但是

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

  

但在我的情况下它不起作用,不知道吗?或者我还有别的方式   可以在相机停止动画时添加标记。?

1 个答案:

答案 0 :(得分:1)

从评论和代码开始,您似乎希望在地图上有多个用户位置标记,但您用于获取用户位置的代码不正常(我找不到googleMap.getLocation,也许是代码不完整)。 不推荐使用google地图的方法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回调中。

如果您需要融合位置提供商的帮助,您可以检查已存在的问题或使用相应的标签打开一个新问题!