获取谷歌的名称放置API(地方搜索)为我当前的位置

时间:2015-05-19 20:12:57

标签: android google-places-api reverse-geocoding location-based-service

我正在创建一个Android应用程序,我将使用当前位置的名称在维基百科上搜索其详细信息。例如如果我在杜莎夫人蜡像馆,首先我会得到当前的位置坐标,然后在反向地理编码后,它的信息将通过维基百科搜索并显示在我的应用程序中。

我有我当前的位置坐标,但问题是当我反转地理编码坐标时,我没有得到地名。例如对于坐标 33.651826,73.156593 ,当我反向地理编码时,我得到 Park Road,Pakistan 这里的名字是 COMSATS信息技术学院

我在Google Places API(地方搜索)中的 COMSATS信息技术学院在名称节点中。那么我可以使用Google Places API的名称节点作为我当前的位置名称,而不是任何地方搜索或其他功能吗?

或者我有什么方法可以使用lat lon获取地名吗?

2 个答案:

答案 0 :(得分:2)

Places API for Android中介绍的Google Play services 7.0提供了围绕使用current place获取PlaceDetectionApi.getCurrentPlace()的API。该方法使用用户的当前位置,然后返回用户可能位置的列表。然后,您可以使用Place.getName()检索位置名称并将其显示给用户。

如果您希望用户从他们周围选择一个位置(而不是选择他们的最顶层结果),您可以使用Place Picker UI

答案 1 :(得分:1)

定义GoogleApiClient对象,然后调用此方法

private void guessCurrentPlace() {
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace( mGoogleApiClient, null );
result.setResultCallback( new ResultCallback<PlaceLikelihoodBuffer>() {
    @Override
    public void onResult( PlaceLikelihoodBuffer likelyPlaces ) {

        PlaceLikelihood placeLikelihood = likelyPlaces.get( 0 );
        String content = "";
        if( placeLikelihood != null && placeLikelihood.getPlace() != null && !TextUtils.isEmpty( placeLikelihood.getPlace().getName() ) )
            content = "Most likely place: " + placeLikelihood.getPlace().getName() + "\n";
        if( placeLikelihood != null )
            content += "Percent change of being there: " + (int) ( placeLikelihood.getLikelihood() * 100 ) + "%";
        mTextView.setText( content );

        likelyPlaces.release();
    }
});
}

参考:http://code.tutsplus.com/articles/google-play-services-using-the-places-api--cms-23715