如何在google map api v2中获取经度和纬度?

时间:2015-03-13 17:59:12

标签: android google-maps google-maps-android-api-2

我正在尝试构建一个显示设备当前位置的Android应用程序。到目前为止,我获得了地图中的位置(使用GPS)并能够显示当前位置。现在我想在那里放一个标记,但我无法找到纬度和经度的值,以便我可以将它传递给

mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
PS:我是android开发的初学者所以请解释一下,我正在使用android studio。

2 个答案:

答案 0 :(得分: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);
}

对于whole project source code,请参考我的github here,您can clone it and try it,它将符合您的要求。

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

enter image description here

答案 1 :(得分: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