如何使用Google Map Android API v2在android中的地图上显示特定位置?

问题描述 投票:0回答:3

我有这个问题。

我想在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();
    }
}
}

这不起作用。请帮助

android google-maps android-intent google-maps-android-api-2 android-maps
3个回答
1
投票

似乎Geocoder功能已被阻止并正在使用网络。由于onCreate在主线程上运行,因此you can get this error(in older versions of android).因此,您必须创建 AsyncTask并将地址解析器的函数移至AsyncTask.doInBackground()。

然后,在AsyncTask.onPostExecute()中,您应该对Google Map执行其他操作。 (在这种情况下,它将在主线程上,必须如何)]


0
投票

使用

map.setMyLocationEnabled(true);

一个蓝色圆圈将出现在地图上。它将显示当前位置。


0
投票

当您从edittext中选择印度时,请调用此功能:

public void showSelectedCountry(String countryName) {

    if (countryName.equals("India")) {

        LatLngBounds boundsIndia = new LatLngBounds(new LatLng(23.63936, 68.14712), new LatLng(28.20453, 97.34466));
        int padding = 0; // offset from edges of the map in pixels
        CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(boundsIndia, padding);
        mMap.animateCamera(cameraUpdate);

    }

}
© www.soinside.com 2019 - 2024. All rights reserved.