Java 获取用户当前位置并在谷歌地图中确定
我想问你:我在我的应用程序中使用谷歌地图,当我打开包含我希望确定用户当前位置的地图的活动时,我正在使用此代码检索当前用户位置Java 获取用户当前位置并在谷歌地图中确定,java,android,google-maps,Java,Android,Google Maps,我想问你:我在我的应用程序中使用谷歌地图,当我打开包含我希望确定用户当前位置的地图的活动时,我正在使用此代码检索当前用户位置 public void locat () { //Use the LocationManager class to obtain GPS locations LocationManager mlocManager = (LocationManager)getSystemService(Context.LO
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 */
但它只是给我纬度和经度,这不是我想要的!我想确定用户在谷歌地图中的当前位置!我怎么做?你需要我的代码来谷歌地图吗?请帮帮我!谢谢您您可以使用地理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类的文档-您可以使用地理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类的文档-如果我正确理解了您的问题,您希望获得用户的当前位置并在地图上显示它。有了纬度和经度值,只需构造一个地质点并在地图上设置该位置的动画即可。如果需要,还可以向地图添加自定义覆盖。下面的内容应该会有所帮助
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);
如果我正确理解您的问题,您希望获得用户的当前位置并在地图上显示它。有了纬度和经度值,只需构造一个地质点并在地图上设置该位置的动画即可。如果需要,还可以向地图添加自定义覆盖。下面的内容应该会有所帮助
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);
实际上,您从未将信息传递给地图以显示位置 您需要做的是从显示的布局中获取地图视图 然后获取地图视图的控制器,并将用户位置设置为中心/动画到其位置 类似于此:
mapView1 = (MapView) this.findViewById(R.id.map);
MapController mapControl = mapView1.getController();
GeoPoint geo = new GeoPoint((int)(lat)*1e6), (int(long*1e6));
mapControl.animateTo(geo);
此链接应该会有所帮助您永远不会通过向地图传递信息来显示位置 您需要做的是从显示的布局中获取地图视图 然后获取地图视图的控制器,并将用户位置设置为中心/动画到其位置 类似于此:
mapView1 = (MapView) this.findViewById(R.id.map);
MapController mapControl = mapView1.getController();
GeoPoint geo = new GeoPoint((int)(lat)*1e6), (int(long*1e6));
mapControl.animateTo(geo);
此链接应该有帮助您想了解该位置的哪些信息?如果你想要地址、街道、州等,你必须使用反向地理编码。应该有一种方法可以使用谷歌地图来实现这一点。将纬度、经度转换为地理点并添加使用MapController在mapi上设置位置动画。我想使用pin向用户显示她的位置!我不需要纬度或经度,我只想向用户显示她的位置您想要关于该位置的什么?如果你想要地址、街道、州等,你必须使用反向地理编码。应该有一种方法可以使用谷歌地图来实现这一点。将纬度、经度转换为地理点并添加使用MapController在mapi上设置位置动画。我想使用pin向用户显示她的位置!我不需要纬度或经度,我只想向用户显示她的位置。在这行中给我一个错误GeoPoint geo=new GeoPoint intlat*1e6,intlong*1e6;对不起,是我的错,代码应该是:GeoPoint geo=new GeoPoint intlat*1e6,intlat*1e6;这是给我一个错误在这一行GeoPoint geo=新GeoPoint intlat*1e6,intlong*1e6;对不起,是我的错,代码应该是:GeoPoint geo=new GeoPoint intlat*1e6,intlat*1e6;不,我不想打开谷歌地图,我已经在使用谷歌API,那么我如何检索我的位置?不,我不想打开谷歌地图,我已经在使用谷歌API,那么我如何检索我的位置?因此,我替换onLocationChanged中的所有内容并放入您的代码,但地图是什么?你是说地图视图?对不起,是的,地图只是一个地图视图对象。所以,我替换了onLocationChanged中的所有内容,并放入你的代码,但地图是什么?你是说地图视图?对不起,是的,地图只是一个地图视图对象。