我处于一个尴尬的地方,我需要将LatLng对象用于double。请帮帮我。现在澄清一下:由于代码的其他部分,我不能使用2个变量而不是1个。
以下是代码:
protected LatLng end;
Geocoder gc = new Geocoder(this);
List<Address> list = gc.getFromLocationName(location, 1);
Address add = list.get(0);
String addressline = add.getAddressLine(0);
Toast.makeText(this, addressline, Toast.LENGTH_LONG).show();
end = new LatLng(add.getLatitude(), add.getLongitude());
gotoLocation(end, DEFAULTZOOM);
MarkerOptions options = new MarkerOptions()
.position(new LatLng(end));
marker = mMap.addMarker(options);
if (marker != null) {
marker.remove();
}
}
gotoLocation代码:
private void gotoLocation(double lat, double lng,
float zoom) {
LatLng ll = new LatLng(lat, lng);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
mMap.moveCamera(update);
mMap.animateCamera(update);
}
问题是如果我将end
设为双,那么它会在此行上发出错误 - end = new LatLng(add.getLatitude(), add.getLongitude());
说它期望一个LatLng对象。当我将它设为LatLng对象时,行gotoLocation(end, DEFAULTZOOM);
会收到一个错误,告诉我 - 第一个参数类型错误(基本上它找到了一个LatLng对象而不是一个double)。
感谢您一直阅读!
答案 0 :(得分:1)
为什么不改变gotoLocation
来接受LatLng对象
private void gotoLocation(LatLng ll,float zoom) {
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
mMap.moveCamera(update);
mMap.animateCamera(update);
}