我的应用程序中有一个小问题,我可以将标记拖动到可见地图上的任何位置。我提到了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()));
}
});
}
}
};
答案 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