Skip to content

Commit

Permalink
type: fix type issue.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaywcjlove committed Mar 10, 2023
1 parent f456755 commit f37c82d
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 27 deletions.
6 changes: 4 additions & 2 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { EmitterSubscription } from 'react-native';

/** 一个地理坐标点。 */
export interface Point {
/** 纬度 */
Expand Down Expand Up @@ -121,7 +123,7 @@ export function stopUpdatingHeading(): void;
/**
* 是否已经开始持续定位了
*/
export function isStarted(): Promise<Boolean>;
export function isStarted(): Promise<boolean>;
/**
* 用于指定所需的精度级别。
* 单位米,默认为 kCLLocationAccuracyBest。定位服务会尽可能去获取满足desiredAccuracy的定位结果,但不保证一定会得到满足期望的结果。
Expand Down Expand Up @@ -243,7 +245,7 @@ export function setGeoLanguage(language: 'DEFAULT' | 'EN' | 'ZH'): void;
* 连续定位监听事件
* @param {Function} listener
*/
export function addLocationListener(listener?: (location: Coordinates | ReGeocode) => void): void;
export function addLocationListener(listener?: (location: Coordinates | ReGeocode) => void): EmitterSubscription;

/**
* 设置是否gps优先-wx
Expand Down
76 changes: 51 additions & 25 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,41 +6,47 @@ export default class AMapGeolocation {
/**
* 配置高德地图 Key
* @param apiKey 获取key: https://lbs.amap.com/api/ios-location-sdk/guide/create-project/get-key
* @type {import('./').setApiKey}
*/
static setApiKey(apiKey) {
return NativeModules.RNAMapGeolocation.setApiKey(apiKey);
}
/**
* 开始定位
* @type {import('./').start}
*/
static start() {
return NativeModules.RNAMapGeolocation.start();
}
/**
* 停止更新位置信息
* @type {import('./').stop}
*/
static stop() {
return NativeModules.RNAMapGeolocation.stop();
}
/**
* 是否已经开始持续定位了
* @type {import('./').isStarted}
*/
static isStarted() {
return NativeModules.RNAMapGeolocation.isStarted();
}
/**
* 开始获取设备朝向,如果设备支持方向识别,则会通过代理回调方法-wx
* @platform ios
* @type {import('./').startUpdatingHeading}
*/
static startUpdatingHeading() {
if (Platform.OS === "ios") {
return NativeModules.RNAMapGeolocation.startUpdatingHeading();
}
}
/**
* 停止获取设备朝向-wx
* @platform ios
*/
* 停止获取设备朝向-wx
* @platform ios
* @type {import('./').setLocationTimeout}
*/
static stopUpdatingHeading() {
if (Platform.OS === "ios") {
return NativeModules.RNAMapGeolocation.stopUpdatingHeading();
Expand All @@ -50,6 +56,7 @@ export default class AMapGeolocation {
* 定位超时时间,最低 2s
* @param {number} number 默认设置为2s
* @platform ios
* @type {import('./').setLocationTimeout}
*/
static setLocationTimeout(number = 2) {
if (Platform.OS === "ios") {
Expand All @@ -60,6 +67,7 @@ export default class AMapGeolocation {
* 逆地理请求超时时间,最低2s
* @param {number} number 默认设置为2s
* @platform ios
* @type {import('./').setReGeocodeTimeout}
*/
static setReGeocodeTimeout(number = 2) {
if (Platform.OS === "ios") {
Expand All @@ -80,6 +88,7 @@ export default class AMapGeolocation {
* @param {Object} coordinate 待转换的经纬度
* @param {Number} type 坐标系类型,对应的序号
* 如:39.989612,116.480972
* @type {import('./').coordinateConvert}
*/
static coordinateConvert(coordinate, type) {
return NativeModules.RNAMapGeolocation.coordinateConvert(coordinate, type);
Expand All @@ -100,6 +109,7 @@ export default class AMapGeolocation {
* - 4 => kCLLocationAccuracyKilometer
* - 5 => kCLLocationAccuracyThreeKilometers
* @platform ios
* @type {import('./').setDesiredAccuracy}
*/
static setDesiredAccuracy(accuracy) {
if (Platform.OS === "ios") {
Expand All @@ -114,6 +124,7 @@ export default class AMapGeolocation {
* - 3 => `Device_Sensors` 仅设备定位模式:在这种模式下,将只使用卫星定位。
* @param {number} mode `1~3`
* @platform android
* @type {import('./').setLocationMode}
*/
static setLocationMode(mode = 1) {
if (Platform.OS === "android") {
Expand All @@ -129,6 +140,7 @@ export default class AMapGeolocation {
}
/**
* 获取当前定位
* @type {import('./').getCurrentLocation}
*/
static getCurrentLocation() {
return NativeModules.RNAMapGeolocation.getCurrentLocation();
Expand All @@ -137,6 +149,7 @@ export default class AMapGeolocation {
* 设置是否单次定位
* @default false
* @platform android
* @type {import('./').setOnceLocation}
*/
static setOnceLocation(isOnceLocation) {
if (Platform.OS === "android") {
Expand All @@ -147,6 +160,7 @@ export default class AMapGeolocation {
* 定位是否返回逆地理信息,为了与 android 保持一致,默认 值为 true。
* @platform ios 默认值:false, 返回地址信息,需要手动设置
* @platform android 默认值:true, 返回地址信息
* @type {import('./').setLocatingWithReGeocode}
*/
static setLocatingWithReGeocode(isReGeocode = true) {
if (Platform.OS === "ios") {
Expand All @@ -160,6 +174,7 @@ export default class AMapGeolocation {
* 设定定位的最小更新距离。单位米,默认,表示只要检测到设备位置发生变化就会更新位置信息。
* @param {number} time
* @platform ios
* @type {import('./').setDistanceFilter}
*/
static setDistanceFilter(time) {
if (Platform.OS === "ios") {
Expand All @@ -169,6 +184,7 @@ export default class AMapGeolocation {
/**
* 指定定位是否会被系统自动暂停。默认为 false
* @platform ios
* @type {import('./').setPausesLocationUpdatesAutomatically}
*/
static setPausesLocationUpdatesAutomatically(value = false) {
if (Platform.OS === "ios") {
Expand All @@ -178,6 +194,7 @@ export default class AMapGeolocation {
/**
* 是否允许后台定位。默认为NO。只在iOS 9.0及之后起作用。
* 设置为YES的时候必须保证 Background Modes 中的 Location updates 处于选中状态,否则会抛出异常。
* @type {import('./').setAllowsBackgroundLocationUpdates}
* @platform ios
*/
static setAllowsBackgroundLocationUpdates(value = false) {
Expand All @@ -188,6 +205,7 @@ export default class AMapGeolocation {
/**
* 设置发起定位请求的时间间隔,单位:毫秒,默认值:2000毫秒
* @platform android
* @type {import('./').setInterval}
*/
static setInterval(interval) {
if (Platform.OS === "android") {
Expand All @@ -200,6 +218,7 @@ export default class AMapGeolocation {
* 默认值为true,当设置为false时会停止主动调用WIFI刷新,将会极大程度影响定位精度,但可以有效的降低定位耗电
* @default true
* @platform android
* @type {import('./').setWifiScan}
*/
static setWifiScan(isWifiPassiveScan) {
if (Platform.OS === "android") {
Expand All @@ -211,6 +230,7 @@ export default class AMapGeolocation {
* 设置是否使用设备传感器。是否开启设备传感器,当设置为true时,网络定位可以返回海拔、角度和速度。
* @default false
* @platform android
* @type {import('./').setSensorEnable}
*/
static setSensorEnable(interval) {
if (Platform.OS === "android") {
Expand All @@ -222,6 +242,7 @@ export default class AMapGeolocation {
* 设置逆地理信息的语言,目前之中中文和英文。
* @param {DEFAULT | EN | ZH} language
* @default DEFAULT
* @type {import('./').setGeoLanguage}
*/
static setGeoLanguage(language = 'DEFAULT') {
if (Platform.OS === "android") {
Expand All @@ -241,7 +262,7 @@ export default class AMapGeolocation {

/**
* 连续定位监听事件
* @param {Function} listener
* @type {import('./').addLocationListener}
*/
static addLocationListener(listener) {
return eventEmitter.addListener('AMapGeolocation', (info) => {
Expand All @@ -256,52 +277,57 @@ export default class AMapGeolocation {
});
}
/**
* 设置是否gps优先-wx
* @default false
* @platform android
*/
* 设置是否gps优先-wx
* @default false
* @platform android
* @type {import('./').setGpsFirst}
*/
static setGpsFirst(isSetGpsFirst) {
if (Platform.OS === "android") {
return NativeModules.RNAMapGeolocation.setGpsFirst(isSetGpsFirst);
}
}
/**
* 设置是否等待wifi刷新-wx
* @default false
* @platform android
*/
* 设置是否等待wifi刷新-wx
* @default false
* @platform android
* @type {import('./').setOnceLocationLatest}
*/
static setOnceLocationLatest(isOnceLocationLatest) {
if (Platform.OS === "android") {
return NativeModules.RNAMapGeolocation.setOnceLocationLatest(isOnceLocationLatest);
}
}
/**
* 设置是否使用缓存策略, 默认为true 使用缓存策略-wx
* @default true
* @platform android
*/
* 设置是否使用缓存策略, 默认为true 使用缓存策略-wx
* @default true
* @platform android
* @type {import('./').setLocationCacheEnable}
*/
static setLocationCacheEnable(isLocationCacheEnable) {
if (Platform.OS === "android") {
return NativeModules.RNAMapGeolocation.setLocationCacheEnable(isLocationCacheEnable);
}
}
/**
* 设置网络请求超时时间。默认为30秒-wx
* @default 30000
* @platform android
*/
* 设置网络请求超时时间。默认为30秒-wx
* @default 30000
* @platform android
* @type {import('./').setHttpTimeOut}
*/
static setHttpTimeOut(httpTimeOut) {
if (Platform.OS === "android") {
return NativeModules.RNAMapGeolocation.setHttpTimeOut(httpTimeOut);
}
}

/**
* 设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP
* @param {HTTP |HTTPS} amapLocationProtocol
* @default HTTP
* @platform android
*/
* 设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP
* @param {HTTP |HTTPS} amapLocationProtocol
* @default HTTP
* @platform android
* @type {import('./').setLocationProtocol}
*/
static setLocationProtocol(amapLocationProtocol = 'HTTP') {
if (Platform.OS === "android") {
return NativeModules.RNAMapGeolocation.setLocationProtocol(amapLocationProtocol)
Expand Down

0 comments on commit f37c82d

Please sign in to comment.