Android经度和纬度

时间:2011-02-25 08:44:03

标签: android

我正在处理一个应用程序,它必须找到用户位置的lat和long,然后在地图上显示。但是,当设备上有互联网时,它的工作正常。但当我尝试断开互联网后,它会得到lat和long null。

查询:

  1. 如果我想在程序上找到lat和long,那么应该有互联网连接吗?
  2. 如果没有连接到互联网,我可以找到lat和long programmaticaly吗?

3 个答案:

答案 0 :(得分:3)

事实上,Android有两种方法可以确定您的经度/纬度。

  • 如果GPS已激活,则使用GPS
  • 如果没有,它会使用网络(或wifi)根据您所在的小区或IP地址来确定。

因此,如果GPS被停用(或由于室内或恶劣的气象条件而无法捕获信号)和网络,Android无法计算您的坐标。

答案 1 :(得分:0)

您可以通过实施LocationListener和以编程方式确定设备位置 像这样的东西:

LocationManager locmgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locmgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); //"this" implements LocationListener

@Override
public void onLocationChanged(Location location) {
  //do whatever with "location"
}

根本不需要互联网连接,您只需要一个位置提供商(A-GPS,GPS)

答案 2 :(得分:0)

如果要在地图上显示,请使用MyLocationOverlay。它比实现自己的locationListeners更容易。调用enableMyLocation onResume()和disableMyLocation onPause()。

您还可以将MyLocationOverlay子类化以更改图标,对位置更改执行自定义操作等。