町または地域の緯度と経度の座標がある場合、Google マップで都市名を取得するにはどうすればよいですか?
緯度、経度を使ってみたところ、国は出たのですが、都市名の出方がわかりません。
町または地域の緯度と経度の座標がある場合、Google マップで都市名を取得するにはどうすればよいですか?
緯度、経度を使ってみたところ、国は出たのですが、都市名の出方がわかりません。
オブジェクトからメソッドGeocoder
を呼び出すことができますgetFromLocation(double, double, int)
。Address
メソッドを持つオブジェクトのリストを返しますgetLocality()
。
Geocoder gcd = new Geocoder(context, Locale.getDefault());
List<Address> addresses = gcd.getFromLocation(lat, lng, 1);
if (addresses.size() > 0) {
System.out.println(addresses.get(0).getLocality());
}
else {
// do your stuff
}
これを試して
List<Address> list = geoCoder.getFromLocation(location
.getLatitude(), location.getLongitude(), 1);
if (list != null & list.size() > 0) {
Address address = list.get(0);
result = address.getLocality();
return result;
以下のコードを試してみてください:-
CityAsyncTask cst = new CityAsyncTask(HomeScreenUserLocation.this,
latitude, longitude);
cst.execute();
String lo = null;
try {
lo = cst.get().toString();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
およびAsyncTask
public class CityAsyncTask extends AsyncTask<String, String, String> {
Activity act;
double latitude;
double longitude;
public CityAsyncTask(Activity act, double latitude, double longitude) {
// TODO Auto-generated constructor stub
this.act = act;
this.latitude = latitude;
this.longitude = longitude;
}
@Override
protected String doInBackground(String... params) {
String result = "";
Geocoder geocoder = new Geocoder(act, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(latitude,
longitude, 1);
Log.e("Addresses", "-->" + addresses);
result = addresses.get(0).toString();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}
}
この問題を解決する新しい方法を得ました。ここでは、Google http サービスを使用して、経度と緯度に基づいて位置の合計情報を取得しました。緯度と経度を URL と API キー (例: latlng=21.1497409, 79.08747970000002 & key=YOUR API KEY) で渡すだけです。ExampleService
これがクラスでの私のgetサービスです
getService(url) {
return this.http.get(url).map((data: any) => data.json())
}
これは、好きな場所に置くことができ、位置データが必要なコンポーネントから以下のサービスを呼び出すだけです
this._exampleService.getService("https://maps.googleapis.com/maps/api/geocode/json?latlng=21.1497409, 79.08747970000002&key=YOUR API KEY").subscribe(getplaceData => {
var placeDataDest: any;
placeDataDest = getplaceData;
console.log("i got place id yeee " + placeDataDest['results'][0]['place_id']);
console.log("i got place details yeee " + placeDataDest['results']);
});
同様に都市名を見つけてください....これが役に立つことを願っています