我正在创建一个移动应用程序,它将获取用户当前的坐标并显示有关该区域的一些信息。
到目前为止,我所做的是
使用熔融LocationApi,我正在为用户获取当前坐标。 基于坐标,我正在服务器端进行一些半径计算,并将区域信息发送到用户应用程序。在这个半径范围内,有时我会获得有关多个区域的信息。
现在,我想在区域信息活动的顶部放置一个标签,以显示当前区域的名称(基于坐标)。
这是我现在获取区域信息的方式。 (SO上另一个问题的代码)
public void getAddress(double lat, double lng) {
try {
Geocoder myLocation = new Geocoder(getApplicationContext(), Locale.getDefault());
List<Address> myList = null;
myList = myLocation.getFromLocation(lat, lng, 1);
Address address = myList.get(0);
String addressStr = "";
addressStr += address.getAddressLine(0) + ", \n";
addressStr += address.getAddressLine(1) + ", \n";
addressStr += address.getAddressLine(2);
Log.e("IGA", "Address" + addressStr);
} catch (IOException e) {
e.printStackTrace();
}
}
此方法的问题在于它根本不可靠,有时会显示可用的完整地址,例如。 STREET_NUMBER,STREET_NAME,AREA_NAME,STATE_PROVINCE,CITY,COUNTRY
等。
有时地址是一些短数据。
来自LOG的第一组坐标的样本数据1
2344, Ar Rawabi, Olaya, Riyadh 34242 3432, Saudi Arabia
Saudi Arabia
这里2322可以是街道编号(不确定),但Ar Rawabi是我要寻找的小区域(2-3公里)。而奥拉亚(Olaya)可能约为10-15公里。
来自LOG的另一组坐标的采样数据2
3424, Al Fasiliyah, Riyadh 3443 5452, Saudi Arabia
Saudi Arabia
这里3424可以是街道号码,但区域名称不可用。再一次,法西里亚(Al Fasiliyah)是一个更大的区域。
我只想从这里获取区域名称。有什么办法只能获取区域名称。我曾经用this link from google docs来尝试了解这种情况,但即使在这里,地址也不一致且不可靠。
我试图从坐标中仅获取Ar Rawabi和OtherAreaName,因为这些是区域名称。
感谢您的帮助。