com.tencent.map.geolocation

## 接口 TencentLocation

-     public interface TencentLocation

  地理位置.

  地理位置由经度, 纬度, 高度, 精度组成, 可能还包含名字, 地址等其他可选信息.

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static java.lang.String` | `BEIDOU_PROVIDER` 位置来源, BEIDOU provider.
    `static java.lang.String` | `CACHE_PROVIDER` 位置来源，缓存
    `static java.lang.String` | `CELL_PROVIDER` 位置来源，Cell基站
    `static java.lang.String` | `COARSE_PROVIDER` 位置来源, Coarse location provider.
    `static int` | `ERROR_BAD_JSON` 错误码, 表示 GPS, Wi-Fi 或基站错误引起的定位失败.
    `static int` | `ERROR_FIRST_TIMEOUT` 错误码, 首次定位超时
    `static int` | `ERROR_INTERNAL` 错误码, 表示SDK内部原因导致定位失败.
    `static int` | `ERROR_NETWORK` 错误码, 表示网络问题引起的定位失败.
    `static int` | `ERROR_OK` 错误码, 表示定位成功.
    `static int` | `ERROR_UNKNOWN` 错误码, 表示未知原因引起的定位失败.
    `static int` | `ERROR_WGS84` 错误码, 表示无法进行坐标转换引起的定位失败.
    `static java.lang.String` | `EXTRA_ADDRDESP_LANDMARK` key, 用于获取一级地标(可识别性较强、规模较大的地点、小区等), 仅用于5号定位接口.
    `static java.lang.String` | `EXTRA_ADDRDESP_OTHERS_RESULTS` key, 用于获取其他结果, 仅用于5号定位接口.
    `static java.lang.String` | `EXTRA_ADDRDESP_SECOND_LANDMARK` key, 用于获取二级地标(较一级地标更为精确，规模更小), 仅用于5号定位接口.
    `static java.lang.String` | `EXTRA_DIRECTION` key, 用于获取设备方向.
    `static java.lang.String` | `FAKE` 位置来源，fake ，该位置为作弊
    `static java.lang.String` | `FUSED_PROVIDER` 位置来源, Fused location provider.
    `static java.lang.String` | `GPS_PROVIDER` 位置来源, GPS location provider.
    `static java.lang.String` | `NETWORK_PROVIDER` 位置来源, Network location provider.
    `static java.lang.String` | `RTK_PROVIDER` 位置来源, RTK provider.
    `static java.lang.String` | `SINGLE_PROVIDER` 位置来源, SINGLE provider.
    `static java.lang.String` | `WIFI_PROVIDER` 位置来源，Wi-Fi

  - ### 方法概要

    所有方法 实例方法 抽象方法
    限定符和类型 | 方法和说明
    --- | ---
    `float` | `getAccuracy()` 返回当前位置的精度.
    `java.lang.String` | `getadCode()` 返回当前位置的adcode.
    `java.lang.String` | `getAddress()` 返回当前位置的地址.
    `double` | `getAltitude()` 返回当前位置的海拔, 单位为m(米), 仅当位置来自GPS时可能有效.
    `java.lang.Integer` | `getAreaStat()` 返回当前位置的行政区划.
    `float` | `getBearing()` 返回当前位置方向, 单位为度, 仅当位置来自GPS时可能有效.
    `java.lang.String` | `getCity()` 返回当前位置的城市.
    `java.lang.String` | `getCityCode()` 返回当前位置的城市编码.
    `java.lang.String` | `getCityPhoneCode()` 返回当前位置的城市固话编码.
    `int` | `getCoordinateType()` 返回当前坐标系，设置为GCJ02坐标系时，大陆返回的为GCJ02，大陆之外返回WGS84。
    `double` | `getDirection()` 返回方向，仅来自传感器方向，如果是gps，则直接获取gps方向
    `java.lang.String` | `getDistrict()` 返回当前位置的区县.
    `long` | `getElapsedRealtime()` 返回当前位置的生成时间(从设备启动时开始算起).
    `android.os.Bundle` | `getExtra()` 返回当前位置相关的某些其他信息, 某个特定的字符串为 key.
    `float` | `getFakeProbability()` 获取作弊可能性，范围0～1
    `int` | `getFakeReason()` 当getSourceProvider返回FAKE时，该方法返回判断其作弊的原因，其他状态下，该方法无意义 该状态返回一个int类型，代表校验其作弊的原因，可能为多种。
    `int` | `getGPSRssi()` 返回GPS信号强度，仅当provider为gps时可用
    `java.lang.String` | `getIndoorBuildingFloor()` 返回室内定位楼层信息，目前只在腾讯支持室内定位的地方有返回，默认1000
    `java.lang.String` | `getIndoorBuildingId()` 返回室内定位建筑物ID信息，目前只在腾讯支持室内定位的地方有返回，默认null
    `int` | `getIndoorLocationType()` 返回室内定位类型，目前仅当室内定位有效时有意义，开发者默认不需要关注
    `double` | `getLatitude()` 返回当前位置的纬度.
    `double` | `getLongitude()` 返回当前位置的经度.
    `java.lang.String` | `getName()` 返回当前位置的名称.
    `java.lang.String` | `getNation()` 返回当前位置的国家.
    `int` | `getNationCode()` 返回国家编码，例如中国为156 注意：该接口涉及到WebService API，请参考https://lbs.qq.com/service/webService/webServiceGuide/webServiceOverview中的配额限制说明， 并将申请的有效key设置到TencentLocationRequest extras中，否则将返回默认值0 示例： TencentLocationRequest request = TencentLocationRequest.create().setRequestLevel(TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA); request.getExtras().putString("ReGeoCodingnKey","您申请的有效key");//"ReGeoCodingnKey"为固定值 int error = mLocMgr.requestSingleFreshLocation(request, mLocSingleListener, mLocHandlerThread.getLooper());
    `java.util.List<TencentPoi>` | `getPoiList()` 返回当前位置周围的 POI.
    `java.lang.String` | `getProvider()` 返回当前位置的来源.
    `java.lang.String` | `getProvince()` 返回当前位置的省份.
    `java.lang.String` | `getSourceProvider()` 返回当前位置的细分来源.
    `float` | `getSpeed()` 返回移动速度, 单位为m/s (米/秒), 仅当位置来自GPS时可能有效.
    `java.lang.String` | `getStreet()` 返回当前位置的街道.
    `java.lang.String` | `getStreetNo()` 返回当前位置的街道编号.
    `long` | `getTime()` 返回当前位置的生成时间.
    `java.lang.String` | `getTown()` 返回当前位置的乡镇.
    `java.lang.String` | `getVillage()` 返回当前位置的村.
    `int` | `isMockGps()` 当使用GPS定位时，判断该GPS位置点是否为Mock数据

- - ### 字段详细资料

    - #### GPS_PROVIDER

          static final java.lang.String GPS_PROVIDER

      位置来源, GPS location provider.
      另请参阅:
        常量字段值

    - #### NETWORK_PROVIDER

          static final java.lang.String NETWORK_PROVIDER

      位置来源, Network location provider.
      另请参阅:
        常量字段值

    - #### CELL_PROVIDER

          static final java.lang.String CELL_PROVIDER

      位置来源，Cell基站
      另请参阅:
        常量字段值

    - #### WIFI_PROVIDER

          static final java.lang.String WIFI_PROVIDER

      位置来源，Wi-Fi
      另请参阅:
        常量字段值

    - #### CACHE_PROVIDER

          static final java.lang.String CACHE_PROVIDER

      位置来源，缓存
      另请参阅:
        常量字段值

    - #### FAKE

          static final java.lang.String FAKE

      位置来源，fake ，该位置为作弊
      另请参阅:
        常量字段值

    - #### BEIDOU_PROVIDER

          static final java.lang.String BEIDOU_PROVIDER

      位置来源, BEIDOU provider.
      另请参阅:
        常量字段值

    - #### RTK_PROVIDER

          static final java.lang.String RTK_PROVIDER

      位置来源, RTK provider.
      另请参阅:
        常量字段值

    - #### SINGLE_PROVIDER

          static final java.lang.String SINGLE_PROVIDER

      位置来源, SINGLE provider.
      另请参阅:
        常量字段值

    - #### COARSE_PROVIDER

          static final java.lang.String COARSE_PROVIDER

      位置来源, Coarse location provider.
      另请参阅:
        常量字段值

    - #### FUSED_PROVIDER

          static final java.lang.String FUSED_PROVIDER

      位置来源, Fused location provider.
      另请参阅:
        常量字段值

    - #### EXTRA_ADDRDESP_OTHERS_RESULTS

          static final java.lang.String EXTRA_ADDRDESP_OTHERS_RESULTS

      key, 用于获取其他结果, 仅用于5号定位接口.

      用法:

           String key = TencentLocation.EXTRA_ADDRDESP_OTHERS_RESULTS;
           ArrayList<TencentAddress> value = tencentLocation.getExtra().getParcelableArrayList(key);

      使用场景: `getAddress()` 不满足需求时可使用其他结果自行进行拼接, 获取到的其他结果为 TencentAddress 的 ArrayList, 列表中的元素分别代表:
      - ST_NO - 门牌
      - FAMOUS_AREA - 知名区域，如商圈或人们普遍认为有较高知名度的区域
      - ST - 街道
      - RD_CROSS - 交叉路口
      请参考 `TencentAddress.getDtype()`
      另请参阅:
        常量字段值

    - #### EXTRA_ADDRDESP_LANDMARK

          static final java.lang.String EXTRA_ADDRDESP_LANDMARK

      key, 用于获取一级地标(可识别性较强、规模较大的地点、小区等), 仅用于5号定位接口.

      用法:

           String key = TencentLocation.EXTRA_ADDRDESP_LANDMARK;
           TencentAddress value = tencentLocation.getExtra().getParcelable(key);

      另请参阅:
        常量字段值

    - #### EXTRA_ADDRDESP_SECOND_LANDMARK

          static final java.lang.String EXTRA_ADDRDESP_SECOND_LANDMARK

      key, 用于获取二级地标(较一级地标更为精确，规模更小), 仅用于5号定位接口.

      用法:

           String key = TencentLocation.EXTRA_ADDRDESP_SECOND_LANDMARK;
           TencentAddress value = tencentLocation.getExtra().getParcelable(key);

      另请参阅:
        常量字段值

    - #### EXTRA_DIRECTION

          static final java.lang.String EXTRA_DIRECTION

      key, 用于获取设备方向.

      用法:

           String key = TencentLocation.EXTRA_DIRECTION;
           double value = tencentLocation.getExtra().getDouble(key);

      另请参阅:
        `TencentLocationRequest#setAllowDirection}`, 常量字段值

    - #### ERROR_OK

          static final int ERROR_OK

      错误码, 表示定位成功.
      另请参阅:
        常量字段值

    - #### ERROR_NETWORK

          static final int ERROR_NETWORK

      错误码, 表示网络问题引起的定位失败.
      另请参阅:
        常量字段值

    - #### ERROR_BAD_JSON

          static final int ERROR_BAD_JSON

      错误码, 表示 GPS, Wi-Fi 或基站错误引起的定位失败.
      另请参阅:
        常量字段值

    - #### ERROR_WGS84

          static final int ERROR_WGS84

      错误码, 表示无法进行坐标转换引起的定位失败.

      注意: 仅出现在需要将WGS84坐标转换成GCJ-02坐标时的情形

      另请参阅:
        常量字段值

    - #### ERROR_INTERNAL

          static final int ERROR_INTERNAL

      错误码, 表示SDK内部原因导致定位失败.
      另请参阅:
        常量字段值

    - #### ERROR_FIRST_TIMEOUT

          static final int ERROR_FIRST_TIMEOUT

      错误码, 首次定位超时
      另请参阅:
        常量字段值

    - #### ERROR_UNKNOWN

          static final int ERROR_UNKNOWN

      错误码, 表示未知原因引起的定位失败.
      另请参阅:
        常量字段值

  - ### 方法详细资料

    - #### getProvider

          java.lang.String getProvider()

      返回当前位置的来源.
      返回:
        provider 的名字, 可能为 null
      另请参阅:
        `#GPS_PROVIDER}`, `#BEIDOU_PROVIDER}`, `#NETWORK_PROVIDER}`, `#FUSED_PROVIDER}`, `#COARSE_PROVIDER}`

    - #### getSourceProvider

          java.lang.String getSourceProvider()

      返回当前位置的细分来源.
      返回:
        provider 的名字, 可能为 null
      另请参阅:
        `#GPS_PROVIDER}`, `#BEIDOU_PROVIDER}`, `#CELL_PROVIDER}`, `#WIFI_PROVIDER}`, `#FAKE}`

    - #### getLatitude

          double getLatitude()

      返回当前位置的纬度.

    - #### getLongitude

          double getLongitude()

      返回当前位置的经度.

    - #### getAltitude

          double getAltitude()

      返回当前位置的海拔, 单位为m(米), 仅当位置来自GPS时可能有效.
      返回:
        0, 如果无法得到海拔

    - #### getAccuracy

          float getAccuracy()

      返回当前位置的精度.

      通常精度为, GPS：<20米，WiFi：30-180米，基站：150-800米.

    - #### getName

          java.lang.String getName()

      返回当前位置的名称.
      返回:
        位置名称, 仅当 request level 为 TencentLocationRequest.REQUEST_LEVEL_NAME 或 TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA 否则返回 null

    - #### getAddress

          java.lang.String getAddress()

      返回当前位置的地址.
      返回:
        位置地址, 仅当 request level 为 TencentLocationRequest.REQUEST_LEVEL_NAME 或 TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA 否则返回 null

    - #### getNation

          java.lang.String getNation()

      返回当前位置的国家.
      返回:
        国家, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getNationCode

          int getNationCode()

      返回国家编码，例如中国为156 注意：该接口涉及到WebService API，请参考https://lbs.qq.com/service/webService/webServiceGuide/webServiceOverview中的配额限制说明， 并将申请的有效key设置到TencentLocationRequest extras中，否则将返回默认值0

      示例： TencentLocationRequest request = TencentLocationRequest.create().setRequestLevel(TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA); request.getExtras().putString("ReGeoCodingnKey","您申请的有效key");//"ReGeoCodingnKey"为固定值 int error = mLocMgr.requestSingleFreshLocation(request, mLocSingleListener, mLocHandlerThread.getLooper());

      返回:
        国家编码

    - #### getProvince

          java.lang.String getProvince()

      返回当前位置的省份.
      返回:
        省份, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getCity

          java.lang.String getCity()

      返回当前位置的城市.
      返回:
        城市, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getDistrict

          java.lang.String getDistrict()

      返回当前位置的区县.
      返回:
        区县, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getTown

          java.lang.String getTown()

      返回当前位置的乡镇.
      返回:
        乡镇, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getVillage

          java.lang.String getVillage()

      返回当前位置的村.
      返回:
        村, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getStreet

          java.lang.String getStreet()

      返回当前位置的街道.
      返回:
        街道, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getStreetNo

          java.lang.String getStreetNo()

      返回当前位置的街道编号.
      返回:
        街道编号, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getAreaStat

          java.lang.Integer getAreaStat()

      返回当前位置的行政区划.
      返回:
        0-表示国内(中国大陆), 1-表示国外

    - #### getPoiList

          java.util.List<TencentPoi> getPoiList()

      返回当前位置周围的 POI.
      返回:
        周围的POI, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 时才有效, 否则返回空的列表

    - #### getBearing

          float getBearing()

      返回当前位置方向, 单位为度, 仅当位置来自GPS时可能有效.
      返回:
        0, 如果无法得到方向
      另请参阅:
        `Location#getBearing()}`

    - #### getSpeed

          float getSpeed()

      返回移动速度, 单位为m/s (米/秒), 仅当位置来自GPS时可能有效.
      返回:
        0, 如果无法得到速度
      另请参阅:
        `Location#getSpeed()}`

    - #### getTime

          long getTime()

      返回当前位置的生成时间.
      另请参阅:
        `System#currentTimeMillis()}`

    - #### getElapsedRealtime

          long getElapsedRealtime()

      返回当前位置的生成时间(从设备启动时开始算起).
      另请参阅:
        `SystemClock#elapsedRealtime()}`

    - #### getGPSRssi

          int getGPSRssi()

      返回GPS信号强度，仅当provider为gps时可用
      返回:
        0:无信号，1：信号弱，2：信号中，3：信号强

    - #### getIndoorBuildingId

          java.lang.String getIndoorBuildingId()

      返回室内定位建筑物ID信息，目前只在腾讯支持室内定位的地方有返回，默认null
      返回:

    - #### getIndoorBuildingFloor

          java.lang.String getIndoorBuildingFloor()

      返回室内定位楼层信息，目前只在腾讯支持室内定位的地方有返回，默认1000
      返回:

    - #### getIndoorLocationType

          int getIndoorLocationType()

      返回室内定位类型，目前仅当室内定位有效时有意义，开发者默认不需要关注
      返回:

    - #### getDirection

          double getDirection()

      返回方向，仅来自传感器方向，如果是gps，则直接获取gps方向
      返回:

    - #### getCityCode

          java.lang.String getCityCode()

      返回当前位置的城市编码.(为了兼容性，该接口返回的内容和`getadCode()`返回的内容一致)
      返回:
        城市编码, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getadCode

          java.lang.String getadCode()

      返回当前位置的adcode.
      返回:
        城市编码, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getCityPhoneCode

          java.lang.String getCityPhoneCode()

      返回当前位置的城市固话编码.
      返回:
        城市固话编码, 当 request level 为 `TencentLocationRequest.REQUEST_LEVEL_POI` 或 `TencentLocationRequest.REQUEST_LEVEL_ADMIN_AREA` 否则返回 null

    - #### getCoordinateType

          int getCoordinateType()

      返回当前坐标系，设置为GCJ02坐标系时，大陆返回的为GCJ02，大陆之外返回WGS84。 当设置为WGS84坐标系时，返回均为WGS84坐标系
      返回:
        坐标系`TencentLocationManager.COORDINATE_TYPE_GCJ02` 或 `TencentLocationManager.COORDINATE_TYPE_WGS84`

    - #### getFakeReason

          int getFakeReason()

      当getSourceProvider返回FAKE时，该方法返回判断其作弊的原因，其他状态下，该方法无意义 该状态返回一个int类型，代表校验其作弊的原因，可能为多种。
      返回:

    - #### getFakeProbability

          float getFakeProbability()

      获取作弊可能性，范围0～1
      返回:

    - #### isMockGps

          int isMockGps()

      当使用GPS定位时，判断该GPS位置点是否为Mock数据
      返回:
        1为是，0为否，-1为无法判断，当且仅当Provider来源是GPS时有效！

    - #### getExtra

          android.os.Bundle getExtra()

      返回当前位置相关的某些其他信息, 某个特定的字符串为 key.

      当允许获取设备方向时可通过以下key访问额外信息:
      - `EXTRA_DIRECTION`: 获取设备方向, 结果类型为 double

      当 request level 为 5号接口时可通过以下 key 访问额外信息:
      - `EXTRA_ADDRDESP_OTHERS_RESULTS`: 获取其他结果, 结果类型为 ArrayList<TencentAddress>
      - `EXTRA_ADDRDESP_LANDMARK`: 获取一级地标, 结果类型为 TencentAddress
      - `EXTRA_ADDRDESP_SECOND_LANDMARK`: 获取二级地标, 结果类型为 TencentAddress