我想问你:我在我的应用程序中使用谷歌地图,当我打开有 map 的 Activity 时,我希望确定用户当前位置,我正在使用此代码来检索当前用户位置
public void locat ()
{
//Use the LocationManager class to obtain GPS locations
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}
// Class My Location Listener
public class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc)
{
loc.getLatitude();
loc.getLongitude();
String Text = "My current location is: " + "Latitud = " + loc.getLatitude() +"Longitud = " + loc.getLongitude();
Toast.makeText( getApplicationContext(),
Text,
Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider)
{
Toast.makeText( getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT ).show();
}
@Override
public void onProviderEnabled(String provider)
{
Toast.makeText( getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras)
{
}
}// End of Class MyLocationListener */
但这只是给我纬度和经度,这不是我想要的!我想确定用户在谷歌地图中的当前位置!我该怎么做?你需要我的代码来谷歌地图吗?请帮助我!谢谢你
最佳答案
如果我正确理解您的问题,您希望获取用户当前位置并将其显示在 map 上。你有纬度和经度值,你需要做的就是构建一个 GeoPoint 并为 map 上的那个位置设置动画。如果需要,您还可以向 map 添加自定义叠加层。像下面这样的东西应该有所帮助。
double lat = location.getLatitude();
double longi = location.getLongitude();
long time = location.getTime();
GeoPoint currentGeo = new GeoPoint(toMicroDegrees(lat), toMicroDegrees(longi));
MapController controller = map.getController();
controller.animateTo(currentGeo);
关于java - 获取用户当前位置并在 Google map 中确定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9576073/