我正在学习Google Maps API V2,现在我正在阅读有关Location API的文档,文档说它将客户端连接到服务:
Location Services sends the current location to your app through a
location client,which is an instance of the Location Services class
LocationClient. All requests for location information go through this
client.
这是否意味着Google将获得我的应用所在的所有职位?我知道如果已下载地图,Google地图可以在离线模式下工作,但位置服务是否仅在线运行?
我需要控制我的应用程序中的互联网流量,因此问题.
解决方法
它的工作方式:
方法1:细胞塔三角测量(使用移动数据)
这种方式使用您的服务提供商网络连接来确定您的位置.返回的经度和纬度绝对不是最准确的,但是它们可以达到10-15%的准确度(根据我的经验).
// Acquire a reference to the system Location Manager LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); // Define a listener that responds to location updates LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { // Called when a new location is found by the network location provider. makeUSEOfNewLocation(location); } public void onStatusChanged(String provider,int status,Bundle extras) {} public void onProviderEnabled(String provider) {} public void onProviderDisabled(String provider) {} }; // Register the listener with the Location Manager to receive location updates locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,locationListener);
方式2:Wifi连接.必须在线.
这种方法比前一种方法准确得多.但缺点是您必须在线并连接到互联网.此方法使用与在任何Web浏览器上找到的JavaScript版本的Google地图相同的理论.通过此方法返回的经度和纬度几乎是精确的.
方式3:GPS. (离线)
GPS是最准确的,它只能在室外工作,它很快消耗电池电量,并且不会像用户想要的那样快速返回位置.然而,GPS不需要连接到互联网或移动数据.它通过请求公共卫星获取您的位置.
以下是您需要的两个功能. getLatitude() and getLongitude().
请记住,这一切都很有趣.但谷歌地图api v2有一个简单的function
mMap.setMyLocationEnabled(真);
考虑所有三种可能性来获取您的位置.