如何在android中使用Google Place API获取最近的位置

如何在android中使用Google Place API获取最近的位置,android,google-maps,google-places-api,Android,Google Maps,Google Places Api,我正在执行查找最近的位置,例如(机场、酒店等)。我已经实现了一些代码,并在googleplaceapi上注册了我的应用程序 我得到了一个错误的回应。我已经把我的代码也放在这里了,还有我使用的API键的屏幕截图 { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); CameraPosition cameraPosition = new CameraPositi

我正在执行
查找最近的位置
,例如(机场、酒店等)。我已经实现了一些代码,并在
googleplaceapi
上注册了我的应用程序

我得到了一个错误的回应。我已经把我的代码也放在这里了,还有我使用的API键的屏幕截图

{

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    CameraPosition cameraPosition = new CameraPosition.Builder().target(
    new LatLng(latitude,longitude)).zoom(18).build();
    googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
    marker = new MarkerOptions().position(new LatLng(latitude, longitude));
    googleMap.addMarker(marker.draggable(true));
    googleMap.setIndoorEnabled(true);
    StringBuilder sb = new StringBuilder("https://maps.googleapis.com/maps/api/geocode/json?");
                        sb.append("location="+latitude+","+longitude);
                        sb.append("&radius=5000");
                        sb.append("&types="+"Mosque");
                        sb.append("&sensor=true");
                        sb.append("&key=apikey is shown in image below");
                        System.out.println("url :-" + sb.toString());
                        PlacesTask placesTask = new PlacesTask();                                   
                        placesTask.execute(sb.toString());
    }

    private class PlacesTask extends AsyncTask<String, Integer, String>{
                        String data = null;
        @Override
        protected String doInBackground(String... url) {
            try{
                data = downloadUrl(url[0]);
            }catch(Exception e){
                 Log.d("Background Task",e.toString());
            }
            return data;
        }

        @Override
        protected void onPostExecute(String result){            
            System.out.println("Data :- " + data);
        }
    }

    /** A method to download json data from url */
    private String downloadUrl(String strUrl) throws IOException{
        String data = "";
        InputStream iStream = null;
        HttpURLConnection urlConnection = null;
        try{
                 URL url = new URL(strUrl);                
                 urlConnection = (HttpURLConnection) url.openConnection();                
                 urlConnection.connect();                
                 iStream = urlConnection.getInputStream();
                 BufferedReader br = new BufferedReader(new InputStreamReader(iStream));
                  StringBuffer sb  = new StringBuffer();
                  String line = "";
                  while( ( line = br.readLine())  != null){
                          sb.append(line);
                  }
                   data = sb.toString();
                   br.close();
          }catch(Exception e){
                  Log.d("Exception while downloading url", e.toString());
          }finally{
                  iStream.close();
                  urlConnection.disconnect();
          }
          return data;
     }     
{
位图Bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.ic_启动器);
CameraPosition CameraPosition=新建CameraPosition.Builder().target(
新LatLng(纬度、经度)).zoom(18.build();
googleMap.setMapType(googleMap.MAP\u TYPE\u NORMAL);
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
标记=新标记选项().位置(新纬度、经度);
googleMap.addMarker(marker.draggable(true));
googleMap.setIndoorEnabled(true);
StringBuilder sb=新的StringBuilder(“https://maps.googleapis.com/maps/api/geocode/json?");
sb.附加(“位置=”+纬度+“,”+经度);
sb.追加(“&radius=5000”);
sb.追加(“&types=“+”Mosque”);
sb.追加(“&sensor=true”);
sb.append(“&key=apikey如下图所示”);
System.out.println(“url:-”+sb.toString());
PlacesTask PlacesTask=新的PlacesTask();
执行(sb.toString());
}
私有类PlacesTask扩展异步任务{
字符串数据=null;
@凌驾
受保护的字符串doInBackground(字符串…url){
试一试{
数据=下载url(url[0]);
}捕获(例外e){
Log.d(“后台任务”,例如toString());
}
返回数据;
}
@凌驾
受保护的void onPostExecute(字符串结果){
System.out.println(“数据:-”+数据);
}
}
/**从url下载json数据的方法*/
私有字符串下载URL(字符串strUrl)引发IOException{
字符串数据=”;
InputStream iStream=null;
HttpURLConnection-urlConnection=null;
试一试{
URL=新URL(strUrl);
urlConnection=(HttpURLConnection)url.openConnection();
urlConnection.connect();
iStream=urlConnection.getInputStream();
BufferedReader br=新的BufferedReader(新的InputStreamReader(iStream));
StringBuffer sb=新的StringBuffer();
字符串行=”;
而((line=br.readLine())!=null){
某人附加(行);
}
data=sb.toString();
br.close();
}捕获(例外e){
Log.d(“下载url时出现异常”,例如toString());
}最后{
iStream.close();
urlConnection.disconnect();
}
返回数据;
}     
API控制台

错误

{“error_message”:“此API项目无权使用此API。”,“results”:[],“status”:“REQUEST_DENIED”}

试试这个

 LocationManager lm = (LocationManager) getApplicationContext()
                .getSystemService(Context.LOCATION_SERVICE);
    Location net_loc = null;
    lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

您可以从net_loc获取当前位置。

:-谢谢您的快速回复,但我想要最近的酒店、医院、,从我的当前位置存入银行并完美获取我的当前位置使用google place api
https://maps.googleapis.com/maps/api/place/radarsearch/json?location=48.859294,2.347589&radius=5000&types=food | cafe&sensor=false&keyword=素食者&key=AddYourOwnKeyHere
示例。当我使用此链接键时,您可能会错误地在谷歌控制台中注册您的应用程序,但当使用我的链接和您的链接时,您的应用程序会正常工作