List<Address> addresses = new Geocoder(a).getFromLocation(latitude,longitude, 1);
Address adr = addresses.get(0)
//receive different paramters of an address
postalCode = a.getPostalCode();
city = a.getLocality();
county = a.getAdminArea();
country = a.getCountryName();
street = a.getThoroughfare();
但我如何收到门牌号码?
NB! a.getAddressLine(0)返回带有数字的街道名称(例如:MyAddress 101b)。有没有办法只收到门牌号码(例如:101b)?
答案 0 :(得分:3)
通常地址是近似值,不包含门牌号码。特别是如果位置不在北美或西欧。我之前的研究表明,没有专门的门牌号码。您必须检查地址字符串,例如正则表达式,以确定它是否包含门牌号码。
答案 1 :(得分:1)
在我的情况下,Label lbl = new Label();
lbl.Text = "%";
td.Controls.Add(lbl);
会返回门牌号码(如果没有号码,则为a.getSubThoroughfare()
)。也许这取决于区域设置,因此请检查它是否适合您。
答案 2 :(得分:-2)
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
String result = null;
try {
List<Address> addressList = geocoder.getFromLocation(
latitude, longitude, 1);
if (addressList != null && addressList.size() > 0)
{
Address address = addressList.get(0);
StringBuilder sb = new StringBuilder();
// House no and street name
sb.append(address.getAddressLine(0)).append("");
}
}