我有一种方法可以将地址转换为经度/纬度。LatLng 是一个 Google Maps API 类,而 LonLat 是我自己的自定义 util 类。
以下将不起作用,因为我无法在回调方法中设置变量坐标。我不确定如何获得价值。这可能很简单,但让我感到困惑。
提前致谢。
public LonLat convert(String address) {
LonLat coords;
geocoder.getLatLng(address, new LatLngCallback() {
public void onFailure() {
// TODO Exception handling
}
@Override
public void onSuccess(LatLng point) {
coords = new LonLat(point.getLongitude(), point.getLatitude());
}
});
return coords;
}
Run Code Online (Sandbox Code Playgroud)
只需将结果存储在回调对象的私有字段中,并通过 getter 对其进行访问即可。
但由于这些回调是异步的,因此您不能期望立即获取该值。因此,您必须重新构建逻辑 - 不要返回坐标并在调用者中处理它,而是不返回任何内容,并将结果传递给将处理它的新代码段(或直接在回调中处理它)