# Geolocation
> ![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';
```
## geolocation.on('locationChange')
on(type: 'locationChange', request: LocationRequest, callback: Callback<Location>) : void
Registers a listener for location changes with a location request initiated.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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')8+
on(type: 'cachedGnssLocationsReporting', request: CachedGnssLocationsRequest, callback: Callback<Array<Location>>) : void;
Registers a listener for cached GNSS location reports.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- 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')8+
off(type: 'cachedGnssLocationsReporting', callback?: Callback<Array<Location>>) : void;
Unregisters the listener for cached GNSS location reports.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- 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')8+
on(type: 'gnssStatusChange', callback: Callback<SatelliteStatusInfo>) : void;
Registers a listener for GNSS satellite status change events.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- 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')8+
off(type: 'gnssStatusChange', callback?: Callback<SatelliteStatusInfo>) : void;
Unregisters the listener for GNSS satellite status change events.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- 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')8+
on(type: 'nmeaMessageChange', callback: Callback<string>) : void;
Registers a listener for GNSS NMEA message change events.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- 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')8+
off(type: 'nmeaMessageChange', callback?: Callback<string>) : void;
Unregisters the listener for GNSS NMEA message change events.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- 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')8+
on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void;
Registers a listener for status change events of the specified geofence.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.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')8+
off(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void;
Unregisters the listener for status change events of the specified geofence.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.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 API uses an asynchronous callback to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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 API uses a promise to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| request | [CurrentLocationRequest](#currentlocationrequest) | No| Location request.|
- Return value
| 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 API uses an asynchronous callback to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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 API uses a promise to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- Return value
| 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 API uses an asynchronous callback to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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 API uses a promise to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- Return value
| 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 API uses an asynchronous callback to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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 API uses a promise to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- Return value
| Name| Description|
| -------- | -------- |
| Promise<boolean> | Promise used to return the location service status.|
- Example
```
geolocation.requestEnableLocation().then((result) => {
console.log('promise, requestEnableLocation: ' + result);
});
```
## geolocation.enableLocation
enableLocation(callback: AsyncCallback<boolean>) : void;
Enables the location service. This API uses an asynchronous callback to return the result.
This is a system API and cannot be called by third-party applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<boolean> | Yes| Callback used to return the location service status.|
- Example
```
geolocation.enableLocation((err, data) => {
console.log('enableLocation: ' + err + " data: " + data);
});
```
## geolocation.enableLocation
enableLocation() : Promise<boolean>
Enables the location service. This API uses a promise to return the result.
This is a system API and cannot be called by third-party applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- Return value
| Name| Description|
| -------- | -------- |
| Promise<boolean> | Promise used to return the location service status.|
- Example
```
geolocation.enableLocation().then((result) => {
console.log('promise, enableLocation: ' + result);
});
```
## geolocation.disableLocation
disableLocation(callback: AsyncCallback<boolean>) : void;
Enables the location service. This API uses an asynchronous callback to return the result.
This is a system API and cannot be called by third-party applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<boolean> | Yes| Callback used to return the location service status.|
- Example
```
geolocation.disableLocation((err, data) => {
console.log('disableLocation: ' + err + " data: " + data);
});
```
## geolocation.disableLocation
disableLocation() : Promise<boolean>
Enables the location service. This API uses a promise to return the result.
This is a system API and cannot be called by third-party applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- Return value
| Name| Description|
| -------- | -------- |
| Promise<boolean> | Promise used to return the location service status.|
- Example
```
geolocation.disableLocation().then((result) => {
console.log('promise, disableLocation: ' + result);
});
```
## geolocation.isGeoServiceAvailable
isGeoServiceAvailable(callback: AsyncCallback<boolean>) : void
Checks whether the (reverse) geocoding service is available. This API uses an asynchronous callback to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geocoder
- 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 API uses a promise to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geocoder
- Return value
| 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 API uses an asynchronous callback to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geocoder
- 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 API uses a promise to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geocoder
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| request | [ReverseGeoCodeRequest](#reversegeocoderequest) | Yes| Reverse geocoding request.|
- Return value
| 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 API uses an asynchronous callback to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geocoder
- 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 API uses a promise to return the result.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geocoder
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| request | [GeoCodeRequest](#geocoderequest) | Yes| Geocoding request.|
- Return value
| Name| Description|
| -------- | -------- |
| Promise<Array<[GeoAddress](#geoaddress)>> | Callback 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.getCachedGnssLocationsSize8+
getCachedGnssLocationsSize(callback: AsyncCallback<number>) : void;
Obtains the number of cached GNSS locations.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- 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.getCachedGnssLocationsSize8+
getCachedGnssLocationsSize() : Promise<number>;
Obtains the number of cached GNSS locations.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- Return value
| 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.flushCachedGnssLocations8+
flushCachedGnssLocations(callback: AsyncCallback<boolean>) : void;
Obtains all cached GNSS locations and clears the GNSS cache queue.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- 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.flushCachedGnssLocations8+
flushCachedGnssLocations() : Promise<boolean>;
Obtains all cached GNSS locations and clears the GNSS cache queue.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
- Return value
| Name| Description|
| -------- | -------- |
| Promise<boolean> | Promise used to return the operation result.|
- Example
```
geolocation.flushCachedGnssLocations().then((result) => {
console.log('promise, flushCachedGnssLocations: ' + result);
});
```
## geolocation.sendCommand8+
sendCommand(command: LocationCommand, callback: AsyncCallback<boolean>) : void;
Sends an extended command to the location subsystem. This API can only be called by system applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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.sendCommand8+
sendCommand(command: LocationCommand) : Promise<boolean>;
Sends an extended command to the location subsystem. This API can only be called by system applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- Parameters
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| command | LocationCommand | Yes| Extended command (string) to be sent.|
- Return value
| 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.isLocationPrivacyConfirmed8+
isLocationPrivacyConfirmed(type : LocationPrivacyType, callback: AsyncCallback<boolean>) : void;
Checks whether a user agrees with the privacy statement of the location service. This API can only be called by system applications.
This is a system API and cannot be called by third-party applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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.isLocationPrivacyConfirmed8+
isLocationPrivacyConfirmed(type : LocationPrivacyType,) : Promise<boolean>;
Checks whether a user agrees with the privacy statement of the location service. This API can only be called by system applications.
This is a system API and cannot be called by third-party applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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 value
| Name| Description|
| -------- | -------- |
| Promise<boolean> | Callback 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.setLocationPrivacyConfirmStatus8+
setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed: boolean, callback: AsyncCallback<boolean>) : void;
Sets the user confirmation status for the privacy statement of the location service. This API can only be called by system applications.
This is a system API and cannot be called by third-party applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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| Callback used to return the result, which indicates whether the user agrees with the privacy statement.|
| 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.setLocationPrivacyConfirmStatus8+
setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolean) : Promise<boolean>;
Sets the user confirmation status for the privacy statement of the location service. This API can only be called by system applications.
This is a system API and cannot be called by third-party applications.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
- 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| Callback used to return the result, which indicates whether the user agrees with the privacy statement.|
- Return value
| Name| Description|
| -------- | -------- |
| Promise<boolean> | Callback 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
| 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
| 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
| 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geocoder
| 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geocoder
| 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geocoder
| 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
| 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.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
| 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.|
## SatelliteStatusInfo8+
Defines the satellite status information.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
| 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.|
## CachedGnssLocationsRequest8+
Represents a request for reporting cached GNSS locations.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Gnss
| 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.|
## Geofence8+
Defines a GNSS geofence. Currently, only circular geofences are supported.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geofence
| 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.|
## GeofenceRequest8+
Represents a GNSS geofencing request.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Geofence
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| priority | LocationRequestPriority | Yes| Priority of the location information.|
| scenario | LocationRequestScenario | Yes| Location scenario.|
| geofence | Geofence | Yes| Geofence information.|
## LocationPrivacyType8+
Defines the privacy statement type.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
| 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.|
## LocationCommand8+
Defines an extended command.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| scenario | LocationRequestScenario | Yes| Location scenario.|
| command | string | Yes| Extended command, in the string format.|
## Location
Defines a location.
**Permission required**: ohos.permission.LOCATION
**System capability**: SystemCapability.Location.Location.Core
| 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 information.|
| additionSize | number | No| Number of additional descriptions.|