【问题标题】:Google Service Location API needs internet?Google Service Location API 需要互联网吗?
【发布时间】:2014-07-10 07:36:51
【问题描述】:

我正在学习 Google Maps API V2,现在我正在阅读有关 Location API 的信息,文件说它将 client 连接到 Service:

定位服务通过 定位客户端,它是定位服务类的一个实例 位置客户端。所有对位置信息的请求都经过这个 客户。

这是否意味着 Google 将获得我的应用所在的所有位置?我知道如果地图已经下载,谷歌地图可以在离线模式下工作,但定位服务是否只能在线工作?

我需要控制我的应用程序中的互联网流量,所以问题来了。

【问题讨论】:

    标签: android google-maps-android-api-2


    【解决方案1】:

    它的工作方式:

    方式 1:蜂窝塔三角测量。(使用移动数据)

    这种方式使用您的服务提供商网络连接来确定您的位置。返回的经度和纬度绝对不是最准确的,但是它们可以让您以 10-15% 的准确度(根据我的经验)。

    这是一个说明这一点的sn-p代码(直接来自Android网站)

    // 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, 0, 0, locationListener);
    

    方式 2:Wifi 连接。必须在线。

    这种方法比前一种方法准确得多。但是缺点是您必须在线并连接到互联网。此方法使用与您在任何网络浏览器上找到的 JavaScript 版本的 Google 地图相同的理论。此方法返回的经度和纬度几乎是准确的。

    方式 3:GPS。 (离线)

    GPS 是最准确的,它只能在户外工作,它会很快消耗电池电量,并且不会像用户想要的那样快速返回位置。然而,GPS 不需要连接到互联网或移动数据。它通过对公共卫星的请求获取您的位置。

    这是您需要的两个功能。 getLatitude() and getLongitude().

    请记住,这一切都很有趣。但是google maps api v2有一个简单的function

    mMap.setMyLocationEnabled(true);

    它会考虑所有三种可能性来获取您的位置。

    【讨论】:

    • 是的,但是mMap.setMyLocationEnabled(true) 只是在地图上显示当前位置,而不是用于代码对吧?要在代码中使用它,我需要 Location API。
    • 你是对的。要为自己获取纬度、经度,您必须使用位置服务 api。对于其他很酷的东西(如人类可读地址),您必须使用 gecoder 服务并将 latitute 、经度参数传递给它。
    • 但简而言之......它需要互联网访问吗?我知道它是如何定义位置的,我知道 GPS 不需要互联网,但我不知道 API 是否总是需要使用某种与 google 的连接来返回结果。
    • 没有。单靠 GPS 就可以做到
    猜你喜欢
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多