2015-03-13 89 views
-1

我正在尝试构建一个显示设备当前位置的Android应用程序。到目前为止,我得到了地图中的位置(使用GPS)并能够显示当前位置。现在,我想提出一个标志那里,但我无法找到纬度和经度的值,这样我可以把它传递给如何在google map api v2中获取经度和纬度?

mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker")); 

PS:我在Android开发初学者所以请解释并我正在使用android studio。

回答

2

首先使用API​​ FusedLocationApi得到Latlng,然后只需要编写一个handleNewLocation方法来处理LatLng,并添加你的地图上的标记。

示例代码:

private void handleNewLocation(Location location) { 
     Log.d(TAG, location.toString()); 

     double currentLatitude = location.getLatitude(); 
     double currentLongitude = location.getLongitude(); 

     LatLng latLng = new LatLng(currentLatitude, currentLongitude); 

     MarkerOptions options = new MarkerOptions() 
       .position(latLng) 
       .title("I am here!"); 
     mMap.addMarker(options); 
} 

对于source codewhole project,请参阅我的github上here,你can clone it and try it,它会满足您的要求。

如果您有任何疑问,请随时与我联系。

enter image description here

+0

这对您有帮助吗?如果是这样,请接受,谢谢 – bjiang 2015-05-20 16:26:25

0

我所做的就是实现com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks,OnConnectionFailedListener。 创建GoogleApiClient场,并呼吁从的onCreate

protected synchronized void buildGoogleApiClient() { 
    Toast.makeText(this, "buildGoogleApiClient", Toast.LENGTH_SHORT).show(); 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(LocationServices.API).build(); 
    mGoogleApiClient.connect(); 
} 

下面的方法,你的活动上面接口来实现的,你将有以下方法,并从onConnected你可以得到当前的位置

public void onConnectionFailed(ConnectionResult arg0) { 
     Toast.makeText(this, "connection failed", Toast.LENGTH_SHORT).show(); 

    } 

@Override 
public void onConnected(Bundle arg0) { 
    Toast.makeText(this, "in onconnected of location services", 
      Toast.LENGTH_SHORT).show(); 
    mLastLocation = LocationServices.FusedLocationApi 
      .getLastLocation(mGoogleApiClient); 

} 

可以使用mLastLocation .getLatitude和.getLongitude

相关问题