gpt4 book ai didi

java - 将地理编码任务任务逆向方法

转载 作者:行者123 更新时间:2023-12-01 14:53:58 25 4
gpt4 key购买 nike

我从 android 网站获取了一段代码,该代码执行反向地理编码(将位置从数字转换为文本)

它工作正常,但由于我的应用程序发生了一些变化,我需要将此代码更改为正常方法,现在它是一个 AsyncTask。它应该获取一个位置并返回一个字符串。

这段代码对我来说有点奇怪,所以我需要你们的帮助:

private class ReverseGeocodingTask extends AsyncTask<Location, Void, Void> 
{
Context mContext;

public ReverseGeocodingTask(Context context)
{
super();
mContext = context;
}

@Override
protected Void doInBackground(Location... params)
{
Geocoder geocoder = new Geocoder(mContext, Locale.getDefault());

Location loc = params[0];
List<Address> addresses = null;
try {
addresses = geocoder.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1);
} catch (IOException e) {
e.printStackTrace();
// Update address field with the exception.
LocationService.this.address = e.toString();
}
if (addresses != null && addresses.size() > 0)
{
Address address = addresses.get(0);
// Format the first line of address (if available), city, and country name.
String addressText = String.format("%s, %s, %s",
address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(0) : "",
address.getLocality(),
address.getCountryName());
// Update address field on UI.
// Message.obtain(mHandler, UPDATE_ADDRESS, addressText).sendToTarget();
LocationService.this.address = addressText;
}
return null;
}
}

最佳答案

你首先要创建一个像这样的方法

public String reverseGeocode(Location loc) {


}

更改获取第一个位置的行(这是唯一使用的位置),并将其删除 - 您已经有了 loc

//Location loc = params[0];

然后,无需设置该位置服务的地址,只需返回它即可:

//LocationService.this.address = addressText;
return addressText;

将它们拼接到方法中,删除最后不必要的 return 语句,然后你就成功了。

仔细观察后,我还发现了一个异常,您只想抛出链,而不是在此方法内进行处理。让调用您的方法的任何内容根据具体情况来处理:这不是此方法可以解决的问题。

关于java - 将地理编码任务任务逆向方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14489714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com