在Google地图Android中拖动标记

时间:2014-07-08 04:10:32

标签: android google-maps-android-api-2 android-maps-v2

我的应用程序中有一个小问题,我可以将标记拖动到可见地图上的任何位置。我提到了this answer on stackoverflow,我可以在标记拖动时为地图设置动画。但即使我不喜欢不要将标记放在地图上,它会自动掉落。

这是我的代码,使其更清晰

    @Override
        public void onMarkerDrag(final Marker marker) 
        {
            final View view = getFragmentManager().findFragmentById(R.id.map).getView();
            if(view.getViewTreeObserver().isAlive())
            {
                view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
                {

                    @Override
                    public void onGlobalLayout() 
                    {
                        view.getViewTreeObserver().removeGlobalOnLayoutListener(this);

                        mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder()
                        .target(marker.getPosition()).zoom(13).build()));

                    }
                });
            }


        }
    };

1 个答案:

答案 0 :(得分:1)

尝试下面的拖动标记代码: -

    map. addMarker(new MarkerOptions().position(new LatLng(lat, lng)).draggable(true));

以及get lat nd lng的方法: -

    map.setOnMarkerDragListener(new OnMarkerDragListener() 
    {
        @Override
        public void onMarkerDragStart(Marker marker) 
        {
            // TODO Auto-generated method stub
        }

        @Override
        public void onMarkerDragEnd(Marker marker) 
        {
            // TODO Auto-generated method stub
            lat     = marker.getPosition().latitude;
            lng     = marker.getPosition().longitude;
        }

        @Override
        public void onMarkerDrag(Marker marker)
        {
            // TODO Auto-generated method stub
        }
     });

请阅读以下文件: -

https://developers.google.com/maps/documentation/android/marker