我是android开发的新手,试图在这里学习。我试图让标记显示在地图上,触摸或点击有效,它还显示纬度和经度。我想将纬度和经度转换为它的相应位置名称,我知道可以使用反向地理编码器,但我只是不知道如何正确编码。
这是我的代码。
public void onMapReady(final GoogleMap googleMap) {
mMap = googleMap;
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
String address;
String city;
mMap.clear();
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(MapsActivity.this, Locale.getDefault());
try {
addresses = geocoder.getFromLocation(point.latitude, point.longitude, 1);
address = addresses.get(0).getAddressLine(0);
city = addresses.get(0).getLocality();
MarkerOptions markerOptions = new MarkerOptions()
.position(point)
.title(city);
Marker marker = mMap.addMarker(markerOptions);
marker.showInfoWindow();
} catch (IOException e) {
e.printStackTrace();
}
}
});}
答案 0 :(得分:0)
如果您想构建像uber或swiggy这样的自定义地方选择器,您必须将服务调用写入Google Places API以检索位置详细信息。您必须进行异步服务调用才能获取放置标记的位置。
如果您想使用Google的帮助,那么您可以选择Google PlacePicker。这在性能和应用程序权重方面都很简单,快速且有效。