# Geolocation - New > ![icon-note.gif](public_sys-resources/icon-note.gif) **Noteļ¼š** > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import ``` import geolocation from '@ohos.geolocation'; ``` ## Required Permissions ohos.permission.LOCATION ohos.permission.LOCATION_IN_BACKGROUND ## geolocation.on('locationChange') on(type: 'locationChange', request: LocationRequest, callback: Callback<Location>) : void Registers a listener for location changes with a location request initiated. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **locationChange** indicates a location change event. | | request | LocationRequest | Yes | Location request. | | callback | Callback<[Location](#location)> | Yes | Callback used to return the location change event. | - Example ``` var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; var locationChange = (location) => { console.log('locationChanger: data: ' + JSON.stringify(location)); }; geolocation.on('locationChange', requestInfo, locationChange); ``` ## geolocation.off('locationChange') off(type: 'locationChange', callback?: Callback<Location>) : void Unregisters the listener for location changes with the corresponding location request deleted. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **locationChange** indicates a location change event. | | callback | Callback<[Location](#location)> | No | Callback used to return the location change event. | - Example ``` var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; var locationChange = (location) => { console.log('locationChanger: data: ' + JSON.stringify(location)); }; geolocation.on('locationChange', requestInfo, locationChange); geolocation.off('locationChange', locationChange); ``` ## geolocation.on('locationServiceState') on(type: 'locationServiceState', callback: Callback<boolean>) : void Registers a listener for location service status change events. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **locationServiceState** indicates a location service status change event. | | callback | Callback<boolean> | Yes | Callback used to return the location service status change event. | - Example ``` var locationServiceState = (state) => { console.log('locationServiceState: ' + state); } geolocation.on('locationServiceState', locationServiceState); ``` ## geolocation.off('locationServiceState') off(type: 'locationServiceState', callback?: Callback<boolean>) : void; Unregisters the listener for location service status change events. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **locationServiceState** indicates a location service status change event. | | callback | Callback<boolean> | No | Callback used to return the location service status change event. | - Example ``` var locationServiceState = (state) => { console.log('locationServiceState: state: ' + state); } geolocation.on('locationServiceState', locationServiceState); geolocation.off('locationServiceState', locationServiceState); ``` ## geolocation.on('cachedGnssLocationsReporting') on(type: 'cachedGnssLocationsReporting', request: CachedGnssLocationsRequest, callback: Callback<Array<Location>>) : void; Registers a listener for cached GNSS location reports. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **cachedGnssLocationsReporting** indicates reporting of cached GNSS locations. | | request | CachedGnssLocationsRequest | Yes | Request for reporting cached GNSS location. | | callback | Callback<boolean> | Yes | Callback used to return cached GNSS locations. | - Example ``` var cachedLocationsCb = (locations) => { console.log('cachedGnssLocationsReporting: locations: ' + locations); } var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true}; geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb); ``` ## geolocation.off('cachedGnssLocationsReporting') off(type: 'cachedGnssLocationsReporting', callback?: Callback<Array<Location>>) : void; Unregisters the listener for cached GNSS location reports. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **cachedGnssLocationsReporting** indicates reporting of cached GNSS locations. | | callback | Callback<boolean> | No | Callback used to return cached GNSS locations. | - Example ``` var cachedLocationsCb = (locations) => { console.log('cachedGnssLocationsReporting: locations: ' + locations); } var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true}; geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb); geolocation.off('cachedGnssLocationsReporting'); ``` ## geolocation.on('gnssStatusChange') on(type: 'gnssStatusChange', callback: Callback<SatelliteStatusInfo>) : void; Registers a listener for GNSS satellite status change events. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **gnssStatusChange** indicates a GNSS satellite status change. | | callback | Callback<SatelliteStatusInfo> | Yes | Callback used to return GNSS satellite status changes. | - Example ``` var gnssStatusCb = (satelliteStatusInfo) => { console.log('gnssStatusChange: ' + satelliteStatusInfo); } geolocation.on('gnssStatusChange', gnssStatusCb); ``` ## geolocation.off('gnssStatusChange') off(type: 'gnssStatusChange', callback?: Callback<SatelliteStatusInfo>) : void; Unregisters the listener for GNSS satellite status change events. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **gnssStatusChange** indicates a GNSS satellite status change. | | callback | Callback<SatelliteStatusInfo> | No | Callback used to return GNSS satellite status changes. | - Example ``` var gnssStatusCb = (satelliteStatusInfo) => { console.log('gnssStatusChange: ' + satelliteStatusInfo); } geolocation.on('gnssStatusChange', gnssStatusCb); geolocation.off('gnssStatusChange', gnssStatusCb); ``` ## geolocation.on('nmeaMessageChange') on(type: 'nmeaMessageChange', callback: Callback<string>) : void; Registers a listener for GNSS NMEA message change events. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **nmeaMessageChange** indicates a GNSS NMEA message change. | | callback | Callback<string> | Yes | Callback used to return GNSS NMEA message changes. | - Example ``` var nmeaCb = (str) => { console.log('nmeaMessageChange: ' + str); } geolocation.on('nmeaMessageChange', nmeaCb ); ``` ## geolocation.off('nmeaMessageChange') off(type: 'nmeaMessageChange', callback?: Callback<string>) : void; Unregisters the listener for GNSS NMEA message change events. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **nmeaMessageChange** indicates a GNSS NMEA message change. | | callback | Callback<string> | No | Callback used to return GNSS NMEA message changes. | - Example ``` var nmeaCb = (str) => { console.log('nmeaMessageChange: ' + str); } geolocation.on('nmeaMessageChange', nmeaCb); geolocation.off('nmeaMessageChange', nmeaCb); ``` ## geolocation.on('fenceStatusChange') on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void; Registers a listener for status change events of the specified geofence. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **fenceStatusChange** indicates a geofence status change. | | request | GeofenceRequest | Yes | Geofencing request. | | want | WantAgent | Yes | **WantAgent** used to return geofence (entrance or exit) events. | - Example ``` import WantAgent from '@ohos.wantAgent'; import { OperationType, WantAgentFlags } from '@ohos.wantagent'; // WantAgent object var wantAgent; // getWantAgent callback function getWantAgentCallback(err, data) { console.info("==========================>getWantAgentCallback=======================>"); if (err.code == 0) { wantAgent = data; } else { console.info('----getWantAgent failed!----'); } } // WantAgentInfo object var wantAgentInfo = { wants: [ { deviceId: "deviceId", bundleName: "com.neu.setResultOnAbilityResultTest1", abilityName: "com.example.test.MainAbility", action: "action1", entities: ["entity1"], type: "MIMETYPE", uri: "key={true,true,false}", parameters: { mykey0: 2222, mykey1: [1, 2, 3], mykey2: "[1, 2, 3]", mykey3: "ssssssssssssssssssssssssss", mykey4: [false, true, false], mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], mykey6: true, } } ], operationType: OperationType.START_ABILITIES, requestCode: 0, wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG] } WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; geolocation.on('fenceStatusChange', requestInfo, wantAgent); ``` ## geolocation.off('fenceStatusChange') off(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void; Unregisters the listener for status change events of the specified geofence. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | string | Yes | Event type. The value **fenceStatusChange** indicates a geofence status change. | | request | GeofenceRequest | Yes | Geofencing request. | | want | WantAgent | Yes | **WantAgent** used to return geofence (entrance or exit) events. | - Example ``` import WantAgent from '@ohos.wantAgent'; import { OperationType, WantAgentFlags } from '@ohos.wantagent'; // WantAgent object var wantAgent; // getWantAgent callback function getWantAgentCallback(err, data) { console.info("==========================>getWantAgentCallback=======================>"); if (err.code == 0) { wantAgent = data; } else { console.info('----getWantAgent failed!----'); } } // WantAgentInfo object var wantAgentInfo = { wants: [ { deviceId: "deviceId", bundleName: "com.neu.setResultOnAbilityResultTest1", abilityName: "com.example.test.MainAbility", action: "action1", entities: ["entity1"], type: "MIMETYPE", uri: "key={true,true,false}", parameters: { mykey0: 2222, mykey1: [1, 2, 3], mykey2: "[1, 2, 3]", mykey3: "ssssssssssssssssssssssssss", mykey4: [false, true, false], mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], mykey6: true, } } ], operationType: OperationType.START_ABILITIES, requestCode: 0, wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG] } WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}}; geolocation.on('fenceStatusChange', requestInfo, wantAgent); geolocation.off('fenceStatusChange', requestInfo, wantAgent); ``` ## geolocation.getCurrentLocation getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback<Location>) : void Obtains the current location. This method uses an asynchronous callback to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | request | [CurrentLocationRequest](#currentlocationrequest) | No | Location request. | | callback | AsyncCallback<[Location](#location)> | Yes | Callback used to return the current location. | - Example ``` var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; var locationChange = (err, location) => { console.log('locationChanger: ' + err + 'data: ' + location); }; geolocation.getCurrentLocation(requestInfo, locationChange); geolocation.getCurrentLocation(locationChange); ``` ## geolocation.getCurrentLocation getCurrentLocation(request?: CurrentLocationRequest) : Promise<Location> Obtains the current location. This method uses a promise to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | request | [CurrentLocationRequest](#currentlocationrequest) | No | Location request. | - Return values | Name | Description | | -------- | -------- | | Promise<[Location](#location)> | Promise used to return the current location. | - Example ``` var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; locationEventListener.getCurrentLocation(requestInfo).then((result) => { console.log('current location: ' + JSON.stringify(result)); }); ``` ## geolocation.getLastLocation getLastLocation(callback: AsyncCallback<Location>) : void Obtains the previous location. This method uses an asynchronous callback to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[Location](#location)> | Yes | Callback used to return the previous location. | - Example ``` geolocation.getLastLocation((err, data) => { console.log('getLastLocation: ' + err + " data: " + JSON.stringify(data)); }); ``` ## geolocation.getLastLocation getLastLocation() : Promise<Location> Obtains the previous location. This method uses a promise to return the result. - Return values | Name | Description | | -------- | -------- | | Promise<[Location](#location)> | Promise used to return the previous location. | - Example ``` geolocation.getLastLocation().then((result) => { console.log('getLastLocation: result: ' + JSON.stringify(result)); }); ``` ## geolocation.isLocationEnabled isLocationEnabled(callback: AsyncCallback<boolean>) : void Checks whether the location service is enabled. This method uses an asynchronous callback to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes | Callback used to return the location service status. | - Example ``` geolocation.isLocationEnabled((err, data) => { console.log('isLocationEnabled: ' + err + " data: " + data); }); ``` ## geolocation.isLocationEnabled isLocationEnabled() : Promise<boolean> Checks whether the location service is enabled. This method uses a promise to return the result. - Return values | Name | Description | | -------- | -------- | | Promise<boolean> | Promise used to return the location service status. | - Example ``` geolocation.isLocationEnabled().then((result) => { console.log('promise, isLocationEnabled: ' + result); }); ``` ## geolocation.requestEnableLocation requestEnableLocation(callback: AsyncCallback<boolean>) : void Requests to enable the location service. This method uses an asynchronous callback to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes | Callback used to return the location service status. | - Example ``` geolocation.requestEnableLocation((err, data) => { console.log('requestEnableLocation: ' + err + " data: " + data); }); ``` ## geolocation.requestEnableLocation requestEnableLocation() : Promise<boolean> Requests to enable the location service. This method uses a promise to return the result. - Return values | Name | Description | | -------- | -------- | | Promise<boolean> | Promise used to return the location service status. | - Example ``` geolocation.requestEnableLocation().then((result) => { console.log('promise, requestEnableLocation: ' + result); }); ``` ## geolocation.isGeoServiceAvailable isGeoServiceAvailable(callback: AsyncCallback<boolean>) : void Checks whether the (reverse) geocoding service is available. This method uses an asynchronous callback to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes | Callback used to return the (reverse) geocoding service status. | - Example ``` geolocation.isGeoServiceAvailable((err, data) => { console.log('isGeoServiceAvailable: ' + err + " data: " + data); }); ``` ## geolocation.isGeoServiceAvailable isGeoServiceAvailable() : Promise<boolean> Checks whether the (reverse) geocoding service is available. This method uses a promise to return the result. - Return values | Name | Description | | -------- | -------- | | Promise<boolean> | Promise used to return the (reverse) geocoding service status. | - Example ``` geolocation.isGeoServiceAvailable().then((result) => { console.log('promise, isGeoServiceAvailable: ' + result); }); ``` ## geolocation.getAddressesFromLocation getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>) : void Converts coordinates into geographic description through reverse geocoding. This method uses an asynchronous callback to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | Yes | Reverse geocoding request. | | callback | AsyncCallback<Array<[GeoAddress](#geoaddress)>> | Yes | Callback used to return the reverse geocoding result. | - Example ``` var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => { console.log('getAddressesFromLocation: ' + err + " data: " + JSON.stringify(data)); }); ``` ## geolocation.getAddressesFromLocation getAddressesFromLocation(request: ReverseGeoCodeRequest) : Promise<Array<GeoAddress>>; Converts coordinates into geographic description through reverse geocoding. This method uses a promise to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | Yes | Reverse geocoding request. | - Return values | Name | Description | | -------- | -------- | | Promise<Array<[GeoAddress](#geoaddress)>> | Promise used to return the reverse geocoding result. | - Example ``` var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; geolocation.getAddressesFromLocation(reverseGeocodeRequest).then((data) => { console.log('getAddressesFromLocation: ' + JSON.stringify(data)); }); ``` ## geolocation.getAddressesFromLocationName getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>) : void Converts geographic description into coordinates through geocoding. This method uses an asynchronous callback to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | request | [GeoCodeRequest](#geocoderequest) | Yes | Geocoding request. | | callback | AsyncCallback<Array<[GeoAddress](#geoaddress)>> | Yes | Callback used to return the geocoding result. | - Example ``` var geocodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1}; geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => { console.log('getAddressesFromLocationName: ' + err + " data: " + JSON.stringify(data)); }); ``` ## geolocation.getAddressesFromLocationName getAddressesFromLocationName(request: GeoCodeRequest) : Promise<Array<GeoAddress>> Converts geographic description into coordinates through geocoding. This method uses a promise to return the result. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | request | [GeoCodeRequest](#geocoderequest) | Yes | Geocoding request. | - Return values | Name | Description | | -------- | -------- | | Promise<Array<[GeoAddress](#geoaddress)>> | Promise used to return the geocoding result. | - Example ``` var geocodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1}; geolocation.getAddressesFromLocationName(geocodeRequest).then((result) => { console.log('getAddressesFromLocationName: ' + JSON.stringify(result)); }); ``` ## geolocation.getCachedGnssLocationsSize getCachedGnssLocationsSize(callback: AsyncCallback<number>) : void; Obtains the number of cached GNSS locations. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<number> | Yes | Callback used to return the number of cached GNSS locations. | - Example ``` geolocation.getCachedGnssLocationsSize((err, size) => { console.log('getCachedGnssLocationsSize: err:' + err + " size: " + size); }); ``` ## geolocation.getCachedGnssLocationsSize getCachedGnssLocationsSize() : Promise<number>; Obtains the number of cached GNSS locations. - Return values | Name | Description | | -------- | -------- | | Promise<number> | Promise used to return the number of cached GNSS locations. | - Example ``` geolocation.getCachedGnssLocationsSize().then((result) => { console.log('promise, getCachedGnssLocationsSize: ' + result); }); ``` ## geolocation.flushCachedGnssLocations flushCachedGnssLocations(callback: AsyncCallback<boolean>) : void; Obtains all cached GNSS locations and clears the GNSS cache queue. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<boolean> | Yes | Callback used to return the operation result. | - Example ``` geolocation.flushCachedGnssLocations((err, result) => { console.log('flushCachedGnssLocations: err:' + err + " result: " + result); }); ``` ## geolocation.flushCachedGnssLocations flushCachedGnssLocations() : Promise<boolean>; Obtains all cached GNSS locations and clears the GNSS cache queue. - Return values | Name | Description | | -------- | -------- | | Promise<boolean> | Promise used to return the operation result. | - Example ``` geolocation.flushCachedGnssLocations().then((result) => { console.log('promise, flushCachedGnssLocations: ' + result); }); ``` ## geolocation.sendCommand sendCommand(command: LocationCommand, callback: AsyncCallback<boolean>) : void; Sends an extended command to the location subsystem. This function can only be called by system applications. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | command | LocationCommand | Yes | Extended command (string) to be sent. | | callback | AsyncCallback<boolean> | Yes | Callback used to return the operation result. | - Example ``` var requestInfo = {'scenario': 0x301, 'command': "command_1"}; geolocation.sendCommand(requestInfo, (err, result) => { console.log('sendCommand: err:' + err + " result: " + result); }); ``` ## geolocation.sendCommand sendCommand(command: LocationCommand) : Promise<boolean>; Sends extended commands to the location subsystem. This function can only be called by system applications. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | command | LocationCommand | Yes | Extended command (string) to be sent. | - Return values | Name | Description | | -------- | -------- | | Promise<boolean> | Callback used to return the operation result. | - Example ``` var requestInfo = {'scenario': 0x301, 'command': "command_1"}; geolocation.sendCommand(requestInfo).then((result) => { console.log('promise, sendCommand: ' + result); }); ``` ## geolocation.isLocationPrivacyConfirmed isLocationPrivacyConfirmed(type : LocationPrivacyType, callback: AsyncCallback<boolean>) : void; Checks whether a user agrees with the privacy statement of the location service. This function can only be called by system applications. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | Yes | Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service. | | callback | AsyncCallback<boolean> | Yes | Callback used to return the result, which indicates whether the user agrees with the privacy statement. | - Example ``` geolocation.isLocationPrivacyConfirmed(1, (err, result) => { console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result); }); ``` ## geolocation.isLocationPrivacyConfirmed isLocationPrivacyConfirmed(type : LocationPrivacyType,) : Promise<boolean>; Checks whether a user agrees with the privacy statement of the location service. This function can only be called by system applications. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | Yes | Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service. | - Return values | Name | Description | | -------- | -------- | | Promise<boolean> | Promise used to return the result, which indicates whether the user agrees with the privacy statement. | - Example ``` geolocation.isLocationPrivacyConfirmed(1).then((result) => { console.log('promise, isLocationPrivacyConfirmed: ' + result); }); ``` ## geolocation.setLocationPrivacyConfirmStatus setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed: boolean, callback: AsyncCallback<boolean>) : void; Sets the user confirmation status for the privacy statement of the location service. This function can only be called by system applications. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | Yes | Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service. | | isConfirmed | boolean | Yes | Whether the user agrees with the privacy statement of the location service. | | callback | AsyncCallback<boolean> | Yes | Callback used to return the operation result. | - Example ``` geolocation.setLocationPrivacyConfirmStatus(1, true, (err, result) => { console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result); }); ``` ## geolocation.setLocationPrivacyConfirmStatus setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolean) : Promise<boolean>; Sets the user confirmation status for the privacy statement of the location service. This function can only be called by system applications. - Parameters | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | type | LocationPrivacyType | Yes | Privacy statement type, for example, privacy statement displayed in the startup wizard or privacy statement displayed when enabling the location service. | | isConfirmed | boolean | Yes | Whether the user agrees with the privacy statement of the location service. | - Return values | Name | Description | | -------- | -------- | | Promise<boolean> | Promise used to return the operation result. | - Example ``` geolocation.setLocationPrivacyConfirmStatus(1, true).then((result) => { console.log('promise, setLocationPrivacyConfirmStatus: ' + result); }); ``` ## LocationRequestPriority Sets the priority of the location request. | Name | Default Value | Description | | -------- | -------- | -------- | | UNSET | 0x200 | Priority unspecified. | | ACCURACY | 0x201 | Location accuracy. | | LOW_POWER | 0x202 | Power efficiency. | | FIRST_FIX | 0x203 | Fast location. Use this option if you want to obtain a location as fast as possible. | ## LocationRequestScenario Sets the scenario of the location request. | Name | Default Value | Description | | -------- | -------- | -------- | | UNSET | 0x300 | Scenario unspecified. | | NAVIGATION | 0x301 | Navigation. | | TRAJECTORY_TRACKING | 0x302 | Trajectory tracking. | | CAR_HAILING | 0x303 | Ride hailing. | | DAILY_LIFE_SERVICE | 0x304 | Daily life services. | | NO_POWER | 0x305 | Power efficiency. Your application does not proactively start the location service. When responding to another application requesting the same location service, the system marks a copy of the location result to your application. In this way, your application will not consume extra power for obtaining the user location. | ## GeoLocationErrorCode Enumerates error codes of the location service. | Name | Default Value | Description | | -------- | -------- | -------- | | INPUT_PARAMS_ERROR | 101 | Incorrect input parameters. | | REVERSE_GEOCODE_ERROR | 102 | Failed to call the reverse geocoding API. | | GEOCODE_ERROR | 103 | Failed to call the geocoding API. | | LOCATOR_ERROR | 104 | Failed to obtain the location. | | LOCATION_SWITCH_ERROR | 105 | Failed to change the location service switch. | | LAST_KNOWN_LOCATION_ERROR | 106 | Failed to obtain the previous location. | | LOCATION_REQUEST_TIMEOUT_ERROR | 107 | Failed to obtain the location within the specified time. | ## ReverseGeoCodeRequest Defines a reverse geocoding request. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | locale | string | No | Language used for the location description. **zh** indicates Chinese, and **en** indicates English. | | latitude | number | Yes | Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude. | | longitude | number | Yes | Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude . | | maxItems | number | No | Maximum number of location records to be returned. | ## GeoCodeRequest Defines a geocoding request. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | locale | string | No | Language used for the location description. **zh** indicates Chinese, and **en** indicates English. | | description | number | Yes | Location description, for example, **No. xx, xx Road, Pudong New District, Shanghai**. | | maxItems | number | No | Maximum number of location records to be returned. | | minLatitude | number | No | Minimum latitude. This parameter is used with **minLongitude**, **maxLatitude**, and **maxLongitude** to specify the latitude and longitude ranges. | | minLongitude | number | No | Minimum longitude. | | maxLatitude | number | No | Maximum latitude. | | maxLongitude | number | No | Maximum longitude. | ## GeoAddress Defines a geographic location. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | latitude | number | No | Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude. | | longitude | number | No | Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude . | | locale | string | No | Language used for the location description. **zh** indicates Chinese, and **en** indicates English. | | placeName | string | No | Landmark of the location. | | countryCode | string | No | Country code. | | countryName | string | No | Country name. | | administrativeArea | string | No | Administrative region name. | | subAdministrativeArea | string | No | Sub-administrative region name. | | locality | string | No | Locality information. | | subLocality | string | No | Sub-locality information. | | roadName | string | No | Road name. | | subRoadName | string | No | Auxiliary road information. | | premises | string | No | House information. | | postalCode | string | No | Postal code. | | phoneNumber | string | No | Phone number. | | addressUrl | string | No | Website URL. | | descriptions | Array<string> | No | Additional description. | | descriptionsSize | number | No | Total number of additional descriptions. | ## LocationRequest Defines a location request. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | priority | [LocationRequestPriority](#locationrequestpriority) | No | Priority of the location request. | | scenario | [LocationRequestScenario](#locationrequestscenario) | Yes | Scenario of the location request. | | timeInterval | number | No | Time interval at which location information is reported. | | distanceInterval | number | No | Distance interval at which location information is reported. | | maxAccuracy | number | No | Location accuracy. | ## CurrentLocationRequest Defines the current location request. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | priority | [LocationRequestPriority](#locationrequestpriority) | No | Priority of the location request. | | scenario | [LocationRequestScenario](#locationrequestscenario) | No | Scenario of the location request. | | maxAccuracy | number | No | Location accuracy, in meters. | | timeoutMs | number | No | Timeout duration, in milliseconds. The minimum value is **1000**. | ## SatelliteStatusInfo Defines the satellite status information. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | satellitesNumber | number | Yes | Number of satellites. | | satelliteIds | Array<number> | Yes | Array of satellite IDs. | | carrierToNoiseDensitys | Array<number> | Yes | Carrier-to-noise density ratio, that is, cn0. | | altitudes | Array<number> | Yes | Altitude information. | | azimuths | Array<number> | Yes | Azimuth information. | | carrierFrequencies | Array<number> | Yes | Carrier frequency. | ## CachedGnssLocationsRequest Represents a request for reporting cached GNSS locations. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | reportingPeriodSec | number | Yes | Interval for reporting the cached GNSS locations, in milliseconds. | | wakeUpCacheQueueFull | boolean | Yes | **true**: reports the cached GNSS locations to the application when the cache queue is full.
**false**: discards the cached GNSS locations when the cache queue is full. | ## Geofence Defines a GNSS geofence. Currently, only circular geofences are supported. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | latitude | number | Yes | Latitude information. | | longitude | number | Yes | Longitude information. | | radius | number | Yes | Radius of a circular geofence. | | expiration | number | Yes | Expiration period of a geofence, in milliseconds. | ## GeofenceRequest Represents a GNSS geofencing request. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | priority | LocationRequestPriority | Yes | Priority of the location information. | | scenario | LocationRequestScenario | Yes | Location scenario. | | geofence | Geofence | Yes | Geofence information. | ## LocationPrivacyType Defines the privacy statement type. | Name | Default Value | Description | | -------- | -------- | -------- | | OTHERS | 0 | Other scenarios. | | STARTUP | 1 | Privacy statement displayed in the startup wizard. | | CORE_LOCATION | 2 | Privacy statement displayed when enabling the location service. | ## LocationCommand Defines an extended command. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | scenario | LocationRequestScenario | Yes | Location scenario. | | command | string | Yes | Extended command, in the string format. | ## Location Defines a location. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | latitude | number | Yes | Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude. | | longitude | number | Yes | Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude . | | altitude | number | Yes | Location altitude, in meters. | | accuracy | number | Yes | Location accuracy, in meters. | | speed | number | Yes | Speed, in m/s. | | timeStamp | number | Yes | Location timestamp in the UTC format. | | direction | number | Yes | Direction information. | | timeSinceBoot | number | Yes | Location timestamp since boot. | | additions | Array<string> | No | Additional description. | | additionSize | number | No | Number of additional descriptions. |