1

PIN コードまたは市外局番を指定して、Google マップの場所を読み込む必要があります。Geocoder メソッドを使用して、特定の住所を使用して緯度と経度を見つけようとしました。これは、場所または地域が指定されている場合は機能しますが、ピンコード (特にインド) では機能しません。ピンコードを使用して特定の地域の緯度と経度を見つける方法または方法はありますか。

これは、mapview を使用して Android にロードされるマップに固有のものです。

私が書いたコードは次のように与えられます:

package com.example.geocodingexample;

import java.io.IOException;
import java.util.List;
import java.util.Locale;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;

public class MainActivity extends MapActivity {
MapView mapView;
MapController mapController;
GeoPoint p;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mapView = (MapView) findViewById(R.id.mapview);
    mapController = mapView.getController();
    mapView.setBuiltInZoomControls(true);
    mapController = mapView.getController();
    mapController.setZoom(14);
    Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
    try {
        List<Address> addresses = geoCoder.getFromLocationName("karnataka",
                1);
        String add = "";
        if (addresses.size() > 0) {
            p = new GeoPoint((int) (addresses.get(0).getLatitude() *    1E6),
                    (int) (addresses.get(0).getLongitude() * 1E6));
            mapController.animateTo(p);
            mapView.invalidate();
            Log.i("latitude obtained", String.valueOf(p.getLatitudeE6()));
            Log.i("longitude obtained", String.valueOf(p.getLongitudeE6()));
            Toast.makeText(this, "lat obtained", Toast.LENGTH_SHORT).show();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
}

}

4

2 に答える 2

0

メソッドシグネチャの場所の数を増やすと機能します。

 getFromLocationName("karnataka",
                        5);

緯度と経度が表示されます。元: -

    public void  findLocationName()
        {
     try {
    Geocoder gcd = new Geocoder(this, Locale.getDefault());
    List<Address> addresses;

    addresses = gcd.getFromLocationName("110002",5);


    for(int i=0;i<addresses.size();i++){
    Log.e("","in loop");
    Log.e("","lat :,,,,,,,,,,,,,"+addresses.get(i).getLatitude()+"  long............"+addresses.get(i).getLongitude());     
Toast.makeText(this, "lat : "+addresses.get(i).getLatitude(),1).show();
 Toast.makeText(this, "long : "+addresses.get(i).getLongitude(),1).show();
  }

     }
  catch (IOException e) {e.printStackTrace();}
    }
于 2012-11-07T12:52:06.797 に答える
0

インドの場合、Pincode では機能しません。

しかし、この別の方法を試してください。「Near=」などの追加の引数を追加できます。おそらく、インドの州をクエリに追加して機能させることができます。

これはうまくいくかもしれませんが、私にはわかりません。楽しむ

于 2012-11-05T06:03:35.320 に答える