我在Google地图中标记了一个位置。用户可以选择通过拖动地图来更改此位置。我正在使用摄像头位置来获取新位置。这是我的代码来获取原始位置:
insertNode(headref, &tail, studentNIM, studentName, attendance);
^^^^^^^
getLocationFromAddress代码工作正常。
然后,用户将拖动到新位置,完成后单击按钮,并在确认新位置后被接受。我正在尝试使用单行代码获取当前摄像机位置的纬度经度:
mMap = googleMap
val addkey = intent.getStringExtra("address")
var addlocation = getLocationFromAddress(addkey) as LatLng
var mapLocation = CameraUpdateFactory.newLatLngZoom(addlocation, 18.0f)
mMap.animateCamera(mapLocation)
但是代码继续返回旧视图的Lat Long。我在哪里错了?
答案 0 :(得分:0)
这样实现-
private GoogleMap.OnCameraIdleListener onCameraIdleListener;
然后使用相机侦听器从相机中心位置获取纬度经度,如下所示-
onCameraIdleListener = new GoogleMap.OnCameraIdleListener() {
@Override
public void onCameraIdle() {
LatLng latLng = mMap.getCameraPosition().target;
Geocoder geocoder = new Geocoder(MapsActivity.this);
try {
List<Address> addressList = geocoder.getFromLocation(latLng.latitude, latLng.longitude, 1);
if (addressList != null && addressList.size() > 0) {
String locality = addressList.get(0).getAddressLine(0);
String country = addressList.get(0).getCountryName();
if (!locality.isEmpty() && !country.isEmpty())
resutText.setText(locality + " " + country);
}
} catch (IOException e) {
e.printStackTrace();
}
}
};
在这里添加地址是另外一回事。如果需要,请使用它。