我使用此代码在用户输入文本时查找地址,但是当用户输入的地址我需要通过距离与用户的实际位置来订购此地址时,是否可以?
是否可以优先考虑用户所在国家/地区的地址?
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(BuscaEnderecoActivity.this, Locale.getDefault());
addresses = geocoder.getFromLocationName(charSequence.toString(), 10);
List<String> valores = new ArrayList<String>();
for (int k=0;k<addresses.size();k++)
{
valores.add(addresses.get(k).getAddressLine(0));
}
ArrayAdapter adapter = new ArrayAdapter(BuscaEnderecoActivity.this,android.R.layout.simple_list_item_1,valores);
lstEndereco.setAdapter(adapter);
谢谢!
答案 0 :(得分:0)
无需为您编写代码,这应该是可能的。您的GeoCoder对象返回一个Address对象列表,这些对象的所有纬度和经度都填充为属性。
如果您知道用户的纬度和经度,您应该能够计算用户与地址列表中每个地址之间的距离,并使用该信息对列表进行排序,使用某种类型的内置排序功能,这是Android原生的功能,或者是一些聪明的数据结构逻辑。
希望有所帮助