次のように場所からアドレスを取得します。
GeoPoint p;
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
Location location = new Location("A");
location.setLatitude(34.7461307);
location.setLongitude(135.5738767);
p = new GeoPoint((int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));
List<Address> add = null;
try {
add = geocoder.getFromLocation(p.getLatitudeE6() / 1E6,
p.getLongitudeE6() / 1E6, 1);
} catch (IOException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
String addressjian = null;
if (add != null && add.size() > 0) {
// Get address
String post = "";
for (int i = 0; i <= add.get(0).getMaxAddressLineIndex(); i++) {
String country = add.get(0).getCountryName();
post = add.get(0).getPostalCode();
if (!add.get(0).getAddressLine(i).equals(country)) {
if (addressjian != null && !addressjian.equals("")) {
addressjian = addressjian + ", ";
}
addressjian += add.get(0).getAddressLine(i);
}
}
}
言語を英語に設定すると、結果は次のようになります。
[Address[addressLines=[0:"1丁目-21 Yagumo Higashimachi",1:"Moriguchi, Osaka Prefecture 570-8588",2:"Japan"],feature=570-8588,admin=null,sub-admin=null,locality=null,thoroughfare=null,postalCode=570-8588,countryCode=JP,countryName=Japan,hasLatitude=true,latitude=34.7456387,hasLongitude=true,longitude=135.5744525,phone=null,url=null,extras=null]]
ただし、言語を日本語に設定すると、結果は次のようになります。
[Address[addressLines=[0:"〒570-8588",1:"日本"],feature=570-8588,admin=null,sub-admin=null,locality=null,thoroughfare=null,postalCode=570-8588,countryCode=JP,countryName=日本,hasLatitude=true,latitude=34.7456387,hasLongitude=true,longitude=135.5744525,phone=null,url=null,extras=null]]
通りの名前が表示されないのはなぜですか?デバイスの言語に依存するのはなぜですか?