我正在构建一个Android应用程序,用户可以使用谷歌地图选择那里最喜欢的地址。
现在我已经实现了我的谷歌地图,因为总是最后一个中心位置值固定在Lat,谷歌地图中。
现在我需要一个中心标记来显示用户在地图中选择位置。
这是我的代码 -
@Override
public void onTouchDown(MotionEvent event) {
mDownCameraPosition = getMap().getMap().getCameraPosition();
}
@Override
public void onTouchUp(MotionEvent event) {
mUpCameraPosition = getMap().getMap().getCameraPosition();
updateCameraPositionData();
}
private void updateCameraPositionData() {
mDownCenterLat.setText(String
.valueOf(mDownCameraPosition.target.latitude));
mDownCenterLong.setText(String
.valueOf(mDownCameraPosition.target.longitude));
mDownZoom.setText(String.valueOf(mDownCameraPosition.zoom));
mUpCenterLat.setText(String.valueOf(mUpCameraPosition.target.latitude));
mUpCenterLong.setText(String
.valueOf(mUpCameraPosition.target.longitude));
mUpZoom.setText(String.valueOf(mUpCameraPosition.zoom));
}
private SupportMapFragment getMap() {
return ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map));
}
请帮助我....
答案 0 :(得分:0)
您可以更改 onTouchUp()方法:
@Override
public void onTouchUp(MotionEvent event) {
mUpCameraPosition = getMap().getMap().getCameraPosition();
getMap().getMap().clear();// to remove previous marker
MarkerOptions options = new MarkerOptions()
.title(/*YOUR TITLE*/)
.position(new LatLng(mUpCameraPosition.target.latitude, mUpCameraPosition.target.longitude))
.icon(BitmapDescriptorFactory.fromResource(R.drawable./*YOUR IMAGE*/));
getMap().getMap().addMarker(options)
updateCameraPositionData();
}
PS:为了获得更好的性能,如果您使用相同的资源图标,则可以在类中添加 BitmapDescriptor 变量以使用它而不是每次在" BitmapDescriptorFactory.fromResource中创建它(R.drawable./ 你的形象 /)"