如何在Android中的谷歌地图中心设置标记?

时间:2014-11-21 21:26:26

标签: android

我正在构建一个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));
}

请帮助我....

1 个答案:

答案 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./ 你的形象 /)"