我想问你:我在我的应用程序中使用谷歌地图,当我打开具有地图的活动时,我想要确定用户当前位置,我使用此代码来检索当前用户位置
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 */
但它只是给我经纬度,这不是我想要的!我想确定用户在谷歌地图中的当前位置!我该怎么办?你需要我的代码谷歌MAPS?请帮帮我!谢谢你
答案 0 :(得分:3)
如果我正确理解了您的问题,您希望获取用户当前位置并将其显示在地图上。您拥有纬度和经度值,您需要做的就是构建一个GeoPoint并在地图上设置该位置的动画。如果需要,您还可以向地图添加自定义叠加层。以下内容应该有所帮助。
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);
答案 1 :(得分:2)
您可以使用geo uri打开谷歌地图:
String url = "geo:48.200927,16.369548,192";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
编辑:您似乎想要反向地理编码。这是一个例子:
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
以下是android Geocoder类的文档 - http://developer.android.com/reference/android/location/Geocoder.html
答案 2 :(得分:2)
您实际上从未将信息传递到地图以显示位置。
您需要做的是从您显示的布局中获取MapView。
然后获取地图视图的控制器并将用户位置设置为其位置的中心/动画。
类似的东西:
mapView1 = (MapView) this.findViewById(R.id.map);
MapController mapControl = mapView1.getController();
GeoPoint geo = new GeoPoint((int)(lat)*1e6), (int(long*1e6));
mapControl.animateTo(geo);
此链接应有助于http://mobiforge.com/developing/story/using-google-maps-android