我有这个问题。
我想在android中的地图上显示特定位置。就像用户在编辑文本中输入印度一样,如何在地图上显示INDIA。我基本上想知道如何获得任何位置的纬度和经度。
请帮忙
我的代码:
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();
}
}
}
不工作。请帮忙
答案 0 :(得分:1)
似乎Geocoder功能被阻止并使用网络。由于onCreate正在主线程上运行,you can get this error(in older versions of android).因此,您必须创建 AsyncTask并将地理编码器的功能移动到AsyncTask.doInBackground()。
然后,在AsyncTask.onPostExecute()之后,您应该使用谷歌地图执行其他操作。 (在这种情况下它将是主线程,它必须如何)
答案 1 :(得分:0)
使用
map.setMyLocationEnabled(true);
地图上会出现一个蓝色圆圈。它将显示当前位置。
答案 2 :(得分: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);
}
}