Android:为什么新的Location实例需要提供商?

时间:2014-05-07 21:44:36

标签: java android constructor location

我有很多地理数据在线存储纬度和经度,我想使用distanceTo方法而不是我自己的半身式公式。

所以我需要将每条记录放入Location字段,但这是我的问题:它需要一个“provider”字符串。为什么? Android将如何处理这些信息?

    for (ArrayList<String> item : Places_Data) {
        Location itemloc = new Location("provider");
        itemloc.setLatitude(latIn);
        itemloc.setLongitude(lonIn);
        //do something with my new location
    }

2 个答案:

答案 0 :(得分:3)

Location的源代码中,它不会使用字符串来执行任何有意义的操作。它只是用它来内部描述Location。如果你Location#toString(),它会打印出坐标,提供者和其他细节(准确性等)。这完全用于内部描述。

您可以向提供商提供任何内容,如以下答案所示:Creating Android Location Object

答案 1 :(得分:0)

正确使用

方式
package android.location.LocationManager
Location location = new Location(LocationManager.GPS_PROVIDER);

使用NETWORK_PROVIDER o GPS_PROVIDER

https://developer.android.com/reference/android/location/LocationManager.html#GPS_PROVIDER

https://developer.android.com/reference/android/location/LocationManager.html#NETWORK_PROVIDER