如何在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
示例。当我使用此链接键时,您可能会错误地在谷歌控制台中注册您的应用程序,但当使用我的链接和您的链接时,您的应用程序会正常工作