2014-11-21 84 views
0

我正在建立一个android应用程序,用户在那里使用谷歌地图选择最喜欢的地址。如何在android中的谷歌地图中心设置标记?

现在我实现了我的Google地图,因为中心位置的最后一个值固定在Google地图的Lat,Long中。

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

这里是我的代码 -

@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

评论是不适用于扩展讨论;此对话已被[转移到聊天](http://chat.stackoverflow.com/rooms/65405/discussion-on-question-by-sonam-how-to-set-marker-in-center-of-google-地图中和)。 – Flexo 2014-11-22 03:15:39

回答

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变量以使用i而不是每次创建它在“BitmapDescriptorFactory.fromResource(R.drawable./ 您的图片 /)”

+0

我需要像 - 14,5th Cross,Lakshmi Layout,Munnekolala ,, Lions机场城市医院附近,Marathahalli ,,班加罗尔,卡纳塔克邦560037上的地址,我的标题....你能不能告诉我一些方法 – Test123 2014-11-21 22:48:52

+0

可以从lat - 长,(据我所知)你应该使用谷歌地理编码API:https://developers.google.com/maps/documentation/geocoding。这是另一个例子:http://techslides.com/convert-latitude-and-longitude-to-a-street-address – Rami 2014-11-21 22:52:02

相关问题