有没有办法根据特定点(长/纬)在Google地图中找到最近的位置, 我读了一些关于Google Place API的内容,但我没有意识到如何使用它。 是否有可能找到下一个最近的一个???
答案 0 :(得分:3)
使用Google Places API Web Service,您可以执行Places Search Request,其中location
是用户lat,lng:
如果您希望按时间顺序获取最接近的位置而不是指定半径中最突出的位置,请务必指定rankby=distance
参数而不是radius
参数。
我还在上面的请求中指定了一个types=food
参数,只返回我的回复中的食物类型位置。可以找到其他受支持的类型here。
要使用Google Places API Web Service,您需要按照here说明获取使用该服务的API密钥,此密钥需要与key=AddYourKeyHere
下的请求一起发送参数。
如果您希望在JavaScript应用程序中使用此服务,请查看Places Library的Google Maps API v3。
答案 1 :(得分:2)
这是您可以实现的方式
LocationManager locationManager = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(Location location) {
Double l1 = location.getLatitude();
Double l2 = location.getLongitude();
address = GetAddress(l1, l2);
}
};
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
private String GetAddress(Double lat, Double lon) {
Geocoder geocoder = new Geocoder(context, Locale.ENGLISH);
String ret = "";
List<Address> addresses = null;
try {
addresses = geocoder.getFromLocation(lat, lon, 1);
if (!addresses.equals(null)) {
Address returnedAddress = addresses.get(0);
StringBuilder strReturnedAddress = new StringBuilder("\n");
for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
strReturnedAddress
.append(returnedAddress.getAddressLine(i)).append(
"\n");
}
ret = "Around: " + strReturnedAddress.toString();
} else {
ret = "No Address returned!";
}
} catch (IOException e) {
e.printStackTrace();
ret = "Location: https://maps.google.co.in/maps?hl=en&q=" + lat
+ "," + lon;
} catch (NullPointerException e) {
e.printStackTrace();
ret = lat + "," + lon;
}
return ret;
}
并在AndroidManifest中添加这些权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
答案 2 :(得分:-1)
URL ::
需要更改纬度,长度,半径,类型,名称和按键。
注意:: 需要注册开发者预览。