0

この問題があります。

Androidの地図に特定の場所を表示したい。ユーザーが編集テキストにインドを入力した場合のように、インドをマップに表示するにはどうすればよいですか。基本的に、任意の場所の緯度と経度を取得する方法を知りたいです。

助けてください

私のコード:

public class Map extends Activity{
private GoogleMap map;
private LatLng myLoc;

@SuppressLint("NewApi") protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map);
    Intent i=getIntent();
    String loc=i.getStringExtra("loc");
    map  = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());  

    try {
        List<Address> addresses = geoCoder.getFromLocationName(
            loc, 5);

        if (addresses.size() > 0) {
            myLoc = new LatLng(
                    (int) (addresses.get(0).getLatitude() * 1E6), 
                    (int) (addresses.get(0).getLongitude() * 1E6));
            map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            CameraUpdate update = CameraUpdateFactory.newLatLngZoom(myLoc, 14);
            map.animateCamera(update);
        }    
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

それは働いていません。助けてください

4

3 に答える 3

1

Geocoder機能がブロックされ、ネットワークを使用しているようです。onCreate がメイン スレッドで実行されているため、このエラーが発生する可能性があります (Android の古いバージョンで)。したがって、AsyncTaskを作成し、ジオコーダーの関数を AsyncTask.doInBackground() に移動する必要があります。

その後、AsyncTask.onPostExecute() で、Google マップを使用して他の操作を実行する必要があります。(この場合はメインスレッドになりますが、どうあるべきか)

于 2013-06-07T17:41:34.610 に答える
0

使用する

map.setMyLocationEnabled(true);

地図上に青い円が表示されます。現在地が表示されます。

于 2013-06-07T11:45:37.353 に答える