【问题标题】:How to set marker in center of google map in android?如何在android的谷歌地图中心设置标记?
【发布时间】:2014-11-22 06:58:22
【问题描述】:

我正在构建一个 android 应用程序,用户使用谷歌地图在那里选择最喜欢的地址。

现在我已经实现了我的谷歌地图,因为中心位置的最后一个值总是固定在谷歌地图的纬度、经度中。

现在我需要一个中心标记来显示用户在地图中选择的位置。

这是我的代码 -

@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));
}

请帮帮我....

【问题讨论】:

标签: android


【解决方案1】:

您可以像这样更改您的 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.可绘制的。/你的图像/)"

【讨论】:

  • 我需要地址,例如 - 14,5th Cross,Lakshmi Layout, Munnekolala,, Near Lions Airport City Hospital , Marathahalli,, Bengaluru, Karnataka 560037 在我的标题上......你能给我一些建议吗方法
  • 要从经纬度获取地址,(据我所知)你应该使用谷歌地理编码 API:developers.google.com/maps/documentation/geocoding。这是另一个例子:techslides.com/…
猜你喜欢
  • 1970-01-01
  • 2017-11-23
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 2011-09-03
  • 2014-07-04
  • 2014-03-16
相关资源
最近更新 更多