我试图通过使用谷歌地图的api来获取我发送的位置的附近位置。下面是url(https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362
日志e(“Res”,response.body()。getStatus());
我是不是用正确的方式进行改造?
我的客户。爪哇:
public class RetrofitClient {
public static Retrofit retrofit=null;
static final String baseurl="https://maps.googleapis.com/maps/api/place/nearbysearch/";
public static Retrofit getClient()
{
if (retrofit==null)
{
retrofit=new Retrofit.Builder().baseUrl(baseurl).addConverterFactory(GsonConverterFactory.create()).build();
}
return retrofit;
}
}
NearbyApi。爪哇:
public interface NearbyApi {
@GET("json?")
Call<NearbyPlaces> getDetails(@Query("location") String loc,
@Query("radius") String radius,
@Query("type") String type,
@Query("keyword") String keyword,@Query("key") String key);
}
主要活动。爪哇:
String loc="-33.8670522,151.1957362";
String radius="1500";
String type="restaurant";
String keyword="cruise";
String key="****";
NearbyApi nearbyApi=RetrofitClient.getClient().create(NearbyApi.class);
Call<NearbyPlaces> call=nearbyApi.getDetails(loc,radius,type,keyword,key);
call.enqueue(new Callback<NearbyPlaces>() {
@Override
public void onResponse(Call<NearbyPlaces> call, Response<NearbyPlaces> response) {
// Log.e("Res",response.body().getStatus());
Log.e("Res",response.body().getStatus());
}
@Override
public void onFailure(Call<NearbyPlaces> call, Throwable t) {
Log.e("Response","Failure");
}
});
(NearbyPlaces.java)POJO类:
public class NearbyPlaces {
@Expose
@SerializedName("status")
private String status;
@Expose
@SerializedName("results")
private List<Results> results;
@Expose
@SerializedName("html_attributions")
private List<String> html_attributions;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public List<Results> getResults() {
return results;
}
public void setResults(List<Results> results) {
this.results = results;
}
public List<String> getHtml_attributions() {
return html_attributions;
}
public void setHtml_attributions(List<String> html_attributions) {
this.html_attributions = html_attributions;
}
public static class Results {
@Expose
@SerializedName("vicinity")
private String vicinity;
@Expose
@SerializedName("types")
private List<String> types;
@Expose
@SerializedName("scope")
private String scope;
@Expose
@SerializedName("reference")
private String reference;
@Expose
@SerializedName("rating")
private int rating;
@Expose
@SerializedName("plus_code")
private Plus_code plus_code;
@Expose
@SerializedName("place_id")
private String place_id;
@Expose
@SerializedName("photos")
private List<Photos> photos;
@Expose
@SerializedName("opening_hours")
private Opening_hours opening_hours;
@Expose
@SerializedName("name")
private String name;
@Expose
@SerializedName("id")
private String id;
@Expose
@SerializedName("icon")
private String icon;
@Expose
@SerializedName("geometry")
private Geometry geometry;
public String getVicinity() {
return vicinity;
}
public void setVicinity(String vicinity) {
this.vicinity = vicinity;
}
public List<String> getTypes() {
return types;
}
public void setTypes(List<String> types) {
this.types = types;
}
public String getScope() {
return scope;
}
public void setScope(String scope) {
this.scope = scope;
}
public String getReference() {
return reference;
}
public void setReference(String reference) {
this.reference = reference;
}
public int getRating() {
return rating;
}
public void setRating(int rating) {
this.rating = rating;
}
public Plus_code getPlus_code() {
return plus_code;
}
public void setPlus_code(Plus_code plus_code) {
this.plus_code = plus_code;
}
public String getPlace_id() {
return place_id;
}
public void setPlace_id(String place_id) {
this.place_id = place_id;
}
public List<Photos> getPhotos() {
return photos;
}
public void setPhotos(List<Photos> photos) {
this.photos = photos;
}
public Opening_hours getOpening_hours() {
return opening_hours;
}
public void setOpening_hours(Opening_hours opening_hours) {
this.opening_hours = opening_hours;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public Geometry getGeometry() {
return geometry;
}
public void setGeometry(Geometry geometry) {
this.geometry = geometry;
}
}
public static class Plus_code {
@Expose
@SerializedName("global_code")
private String global_code;
@Expose
@SerializedName("compound_code")
private String compound_code;
public String getGlobal_code() {
return global_code;
}
public void setGlobal_code(String global_code) {
this.global_code = global_code;
}
public String getCompound_code() {
return compound_code;
}
public void setCompound_code(String compound_code) {
this.compound_code = compound_code;
}
}
public static class Photos {
@Expose
@SerializedName("width")
private int width;
@Expose
@SerializedName("photo_reference")
private String photo_reference;
@Expose
@SerializedName("html_attributions")
private List<String> html_attributions;
@Expose
@SerializedName("height")
private int height;
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public String getPhoto_reference() {
return photo_reference;
}
public void setPhoto_reference(String photo_reference) {
this.photo_reference = photo_reference;
}
public List<String> getHtml_attributions() {
return html_attributions;
}
public void setHtml_attributions(List<String> html_attributions) {
this.html_attributions = html_attributions;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
}
public static class Opening_hours {
@Expose
@SerializedName("open_now")
private boolean open_now;
public boolean getOpen_now() {
return open_now;
}
public void setOpen_now(boolean open_now) {
this.open_now = open_now;
}
}
public static class Geometry {
@Expose
@SerializedName("viewport")
private Viewport viewport;
@Expose
@SerializedName("location")
private Location location;
public Viewport getViewport() {
return viewport;
}
public void setViewport(Viewport viewport) {
this.viewport = viewport;
}
public Location getLocation() {
return location;
}
public void setLocation(Location location) {
this.location = location;
}
}
public static class Viewport {
@Expose
@SerializedName("southwest")
private Southwest southwest;
@Expose
@SerializedName("northeast")
private Northeast northeast;
public Southwest getSouthwest() {
return southwest;
}
public void setSouthwest(Southwest southwest) {
this.southwest = southwest;
}
public Northeast getNortheast() {
return northeast;
}
public void setNortheast(Northeast northeast) {
this.northeast = northeast;
}
}
public static class Southwest {
@Expose
@SerializedName("lng")
private double lng;
@Expose
@SerializedName("lat")
private double lat;
public double getLng() {
return lng;
}
public void setLng(double lng) {
this.lng = lng;
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
}
public static class Northeast {
@Expose
@SerializedName("lng")
private double lng;
@Expose
@SerializedName("lat")
private double lat;
public double getLng() {
return lng;
}
public void setLng(double lng) {
this.lng = lng;
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
}
public static class Location {
@Expose
@SerializedName("lng")
private double lng;
@Expose
@SerializedName("lat")
private double lat;
public double getLng() {
return lng;
}
public void setLng(double lng) {
this.lng = lng;
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
}
}
如果你已经有了API密钥,如果没有,
https://developers.google.com/places/web-service/get-api-key
一旦你得到你的api密钥并且你想要启用api和服务,你总是可以转到你的api控制台并启用api和服务,
去https://console.cloud.google.com/apis/dashboard?YOUR_PROJECT
点击启用API按钮
启用要使用的API和服务。
您应该为Android和任何其他您可能想要使用的服务启用Maps SDK。
更新:
如果您正在发出Http请求(例如@GET),请确保您没有在API控制台中对您的API设置限制。因此,您需要转到生成的密钥,找到以下内容,并设置为无限制,
如果只选择Android,会发生什么?您将能够使用所选SDK中的任何对象和方法(例如地点/地图)。
例如,places API中的PlacePicker对象。
我从开发者网站上引用了PlacesSDK,
https://developers.google.com/places/android-sdk/intro
但是,如果您想发出HTTP请求,那么它将被拒绝,因为您在密钥中设置了限制。
我正在考虑开发一款Android应用程序,它可以检测附近所有或大部分打开的移动设备(iPhone、Android等)。我不需要与这些设备交互,只需要检测它们,并且要求检测到的设备不需要安装任何特殊/不寻常的应用程序。 我已经考虑了几种方法来做到这一点(以某种方式检测蓝牙、wifi或蜂窝传输/标识符),但我正在寻找一种检测相对较大比例的附近设备的具体实现方法。我不确定这些方法中的哪些是可能的/可行的
我有如下结构的数据库。如何在5公里内location_id。有纬度和经度的数字已经在数据库表中。请参阅我的数据库结构图像。 以下是数据库结构图像: 我已经从这个链接搜索如何找到最近的位置使用纬度和经度从sql数据库?我不明白密码。 SELECT id,(3959*acos(cos(弧度(37))*cos(弧度(lat ) ) * cos(弧度(lng)-弧度(-122))sin(弧度(37))*s
问题内容: 我正在尝试在Google地图的左上角显示a ,以告知用户距特定标记点位置的x距离,即“您靠近位置A”,但仅显示if在范围内。如果它们超出范围,则将消失。 我了解Google Places API会向您显示所有附近的位置,但是我只想显示用户在地图上具有x距离的标记在附近的位置。 我该如何实现?我仍然需要使用Google Places API吗? 我的课程.java: map.xml 有人
附近地点搜索 题目详情 找一个点集中与给定点距离最近的点,同时,给定的二维点集都是固定的,查询可能有很多次,时间复杂度O(n)无法接受,请设计数据结构和相应的算法。 分析与解法 此题是去年微软的三面题,类似于一朋友@陈利人出的这题:附近地点搜索,就是搜索用户附近有哪些地点。随着GPS和带有GPS功能的移动设备的普及,附近地点搜索也变得炙手可热。在庞大的地理数据库中搜索地点,索引是很重要的。但是,我
如何在flutter应用程序中从google maps中检索我附近位置的数据
问题内容: 如何使用Python在Windows上检索附近的无线LAN网络的信号强度? 我想显示或绘制值。 问题答案: 如果您使用的是 Windows ,则可能要 使用WLAN API ,该 API 提供了“ WlanGetAvailableNetworkList()”功能(有关用法,请参阅API文档)。我不知道有任何python包装器,因此您可能必须使用ctypes自己包装它。我有一个初步的脚本