1

マップ アクティビティでユーザーの緯度と経度を表示するこのメソッドがあります。

public void animateMap(Location location){
        double lat = location.getLatitude();
        double lng = location.getLongitude();

       Toast.makeText(MyMapActivity.this,
                "Sie sind an\n" + lat + "\n" + lng, Toast.LENGTH_SHORT)
                .show();
        GeoPoint point = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
        mapController.animateTo(point, new Message());
        mapOverlay.setPointToDraw(point);

    }

メソッドに Geocoder を実装する方法は? したがって、Toast は座標ではなく場所の住所を表示します。

4

3 に答える 3

1

あなたが使う

 Geocoder myLocation = new Geocoder(context, Locale.ENGLISH);
List<Address> myList= myLocation.getFromLocation(lat, lng, 1);
Address add = myList.get(0);
String addressString = add.getAddressLine(0);
String country = add.getCountryName();                      
String city = add.getLocality();
于 2012-04-19T11:31:10.853 に答える
1

最も簡単な実装は、ジオコーダー クラスを使用することです。

 Geocoder geocoder = new Geocoder(context, Locale.ENGLISH); 
        geocoder.getFromLocation(lat, lng, 1);
        List<Address> ls=new ArrayList();
        ls= geocoder.getFromLocation(lat, lng, 1);
        String myLocation = ls.get(0).getSubAdminArea();

このクラスから返されるすべての情報を確認して、最も適したものを選択できます。国の名前からランドマークの名前、近隣の郵便番号まで、必要なものはほとんどすべて含まれています。

ただし、Google がこの場所に関する情報を持っていない場合、null 文字列が返されることに注意してください。

したがって、例としては次のようになります。

public void animateMap(Location location){
    double lat = location.getLatitude();
    double lng = location.getLongitude();


String myLocation;
 try{
           Geocoder geocoder = new Geocoder(context, Locale.ENGLISH);   
        geocoder.getFromLocation(lat, lng, 1);
        List<Address> ls=new ArrayList();
        ls= geocoder.getFromLocation(lat, lng, 1);
        myLocation = ls.get(0).getSubAdminArea();
 }catch(Exception e){
     myLocation="Sorry, we have no information about this location";
 }



   Toast.makeText(MyMapActivity.this,
            "Sie sind an\n" + myLocation , Toast.LENGTH_SHORT)
            .show();
    GeoPoint point = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
    mapController.animateTo(point, new Message());
    mapOverlay.setPointToDraw(point);

}
于 2012-04-19T11:22:59.337 に答える
0

Geocoder から現在地の住所のリストを取得し、null または空の結果を確認します。

 Geocoder geocoder = new Geocoder(getApplicationContext,Locale.getDefault()); 
 List<Address> address = geocoder.getFromLocation(lat, long, 1);
 String myLocation = "";
 if(address != null && !address.isEmpty())
 {
    myLocation = address.get(0).getSubAdminArea();
 }
于 2012-04-19T11:29:48.253 に答える