从标记 google maps-android studio 获取所有信息
get all the information from a marker google maps-android studio
我正在制作一个应用程序,当它打开时,它会显示用户的当前 location.The 事情是我还想通过按标记就像这个应用程序
Application Photo
代码:
private GoogleMap mMap;
private GoogleApiClient googleApiClient;
private LocationRequest locationRequest;
private Location lastLocation;
private Marker currentUserLocationMarker;
这里是包含标记的方法
@Override
public void onLocationChanged(Location location) {
lastLocation=location;
if(currentUserLocationMarker!=null)
{
currentUserLocationMarker.remove();
}
LatLng latLng= new LatLng(location.getLatitude(),location.getLongitude());
MarkerOptions markerOptions= new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title("Test");
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_marker_mini));
currentUserLocationMarker = mMap.addMarker(markerOptions);
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.animateCamera(CameraUpdateFactory.zoomBy(15));
if(googleApiClient != null)
{
LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient,this);
}
}
您可以使用 地理编码 API 并使用反向地理编码从 latlng 中获取详细信息。这是一个反向地理编码查询示例,
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
这将 return 一个包含多个地址结果的 json 响应,第一个地址是最突出的结果。
您还可以在 android 中使用地理编码器,如下所示,(此示例获取地址列表并从 returned 结果中记录格式化的地址行)
Geocoder geocoder=new Geocoder(this);
try {
List<Address> addressList=geocoder.getFromLocation(40.714232,-73.9612889,10);
for(Address address:addressList){
Log.d("TAG",address.getAddressLine(0));
}
} catch (IOException e) {
e.printStackTrace();
}
getFromLocation(..) 的参数是纬度、经度和您要检索的最大结果数,第一个是突出的结果。
查看地理编码文档 API 了解您还可以做什么,
https://developers.google.com/maps/documentation/geocoding/intro#reverse-example
同时查看 Geocoder 的文档,
我正在制作一个应用程序,当它打开时,它会显示用户的当前 location.The 事情是我还想通过按标记就像这个应用程序 Application Photo
代码:
private GoogleMap mMap;
private GoogleApiClient googleApiClient;
private LocationRequest locationRequest;
private Location lastLocation;
private Marker currentUserLocationMarker;
这里是包含标记的方法
@Override
public void onLocationChanged(Location location) {
lastLocation=location;
if(currentUserLocationMarker!=null)
{
currentUserLocationMarker.remove();
}
LatLng latLng= new LatLng(location.getLatitude(),location.getLongitude());
MarkerOptions markerOptions= new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title("Test");
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_marker_mini));
currentUserLocationMarker = mMap.addMarker(markerOptions);
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.animateCamera(CameraUpdateFactory.zoomBy(15));
if(googleApiClient != null)
{
LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient,this);
}
}
您可以使用 地理编码 API 并使用反向地理编码从 latlng 中获取详细信息。这是一个反向地理编码查询示例,
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
这将 return 一个包含多个地址结果的 json 响应,第一个地址是最突出的结果。
您还可以在 android 中使用地理编码器,如下所示,(此示例获取地址列表并从 returned 结果中记录格式化的地址行)
Geocoder geocoder=new Geocoder(this);
try {
List<Address> addressList=geocoder.getFromLocation(40.714232,-73.9612889,10);
for(Address address:addressList){
Log.d("TAG",address.getAddressLine(0));
}
} catch (IOException e) {
e.printStackTrace();
}
getFromLocation(..) 的参数是纬度、经度和您要检索的最大结果数,第一个是突出的结果。
查看地理编码文档 API 了解您还可以做什么,
https://developers.google.com/maps/documentation/geocoding/intro#reverse-example
同时查看 Geocoder 的文档,