ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Standard functions / Geolocation functions
  • Special cases
  • Operating mode in iPhone/iPad
  • Required permissions
  • Required application feature
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Initializes the parameters of geolocation WLanguage functions and finds a location provider.
To define the device position, you have the ability to use two types of "location providers":
  • the network of GPS satellites.
  • the triangulation performed from the network of mobile and Wi-Fi antennas.
Each provider differs by the precision of its information, its energy consumption and the required hardware configuration (presence of a GPS chip, Internet access, etc.).
Example
AndroidAndroid Widget
// Find a location provider that can give information about the speed
// consuming an average amount of energy and providing a high level of precision
GPSInitParameter(gpsAuto, gpsPrecisionHigh + gpsSpeed + gpsEnergyMedium)
Syntax
GPSInitParameter(<Provider to find> [, <Options>])
<Provider to find>: Integer constant
Type of requested location provider.
gpsAutoDefines the most suitable provider according to the criteria specified in the <Options> parameter.
gpsNetworkCalculates the position by using the network of mobile or Wi-Fi antennas.
gpsSatelliteCalculates the position by using the network of GPS satellites.

WINDEViPhone/iPadIOS WidgetMac Catalyst This parameter is ignored.
<Options>: Optional combination of Integer constants
Selection criteria for the location provider.
AndroidAndroid Widget This parameter is used when <Provider to find> corresponds to the gpsAuto constant. In the other cases, <Options> is ignored.
The possible values are:
gpsAltitudeIndicates whether the provider must be able to specify the altitude of the device.
WINDEV This constant is not available.
gpsDirectionIndicates whether the provider must be able to specify the move direction of the device.
WINDEV This constant is not available.
gpsEnergyHighIndicates whether the provider can require a high quantity of energy.
WINDEV This constant is not available.
gpsEnergyLowIndicates whether the provider must require a low quantity of energy.
WINDEV This constant is not available.
gpsEnergyMediumIndicates whether the provider can require a medium quantity of energy.
WINDEV This constant is not available.
gpsPrecisionHighThe position is calculated with high accuracy.
gpsPrecisionLowThe position is calculated with low accuracy.
gpsSpeedIndicates whether the provider must be able to specify the moving speed.
WINDEV This constant is not available.

Remarks:
  • The gpsPrecisionxx constants are exclusive between themselves.
  • The gpsEnergyxx constants are exclusive between themselves.
  • No constant is required. If no constant is specified, the function will search for a location provider that consumes the least amount of energy with any precision and without any specific characteristics.
Remarks

Special cases

  • AndroidAndroid Widget You can get the availability of a geolocation provider using GPSStatus.
  • AndroidAndroid Widget To get the characteristics of the location provider initialized by GPSInitParameter, use GPSInfo.
  • Depending on the type of device on which the application is started, there may be no provider corresponding to all the specified criteria (no GPS chip, no Internet access, ...).
    If no providers correspond the specified criteria, these criteria are ignored one after the other until a valid provider is obtained according to the following order: energy consumption, accuracy, direction, speed and altitude.
  • The geolocation functions can, according to the selected setting and to the call frequency, consume a lot of resources on the device (battery, bandwidth, etc.). GPSEnd must be called when the location functions are no longer used by the application.
  • If a geolocation function is called, but the parameters have not yet been defined by GPSInitParameter, the application will try to use the GPS location first and then the mobile antenna network if the GPS system is not available.
  • GPS functions cannot be used to perform an indoor geolocation: the positioning cannot be performed via Wi-Fi hotspots only.
iPhone/iPadIOS WidgetMac Catalyst

Operating mode in iPhone/iPad

When a GPS function is first run, the system requests geolocation permission from the user. If the user refuses, all the GPS functions used in the rest of the application will fail (fatal error).
To re-allow the use of GPS for this application, the system configuration of the application must be modified.
AndroidAndroid Widget

Required permissions

The call to this function modifies the permissions required by the application.
Required permission: ACCESS_FINE_LOCATION.
Android 11 specific case: This function requires the ACCESS_BACKGROUND_LOCATION permission to access the device's location.
This permission allows using the function when the application is in the background.
If the application needs to use background location:
  • Manually add the "ACCESS_BACKGROUND_LOCATION" permission in the Android application generation wizard.
  • Explicitly request background location permission with PermissionRequest. For example:
    PermissionRequest(permBackgroundLocation, Callback)
    INTERNAL PROCEDURE Callback(p is Permission)
    IF p.Granted THEN
    // Functions that require background location access can be used
    END
    END
A window allows users to:
  • allow access to the device location while the application is in the background,
  • allow access to the location only while the application is in use,
  • deny access to the location. The user can also change these permissions at any time in the Android settings.

Remarks:
  • Follow Google's guidelines for applications that require background location access. For more details, see https://support.google.com/googleplay/android-developer/answer/9799150. If these conditions are not met (especially user information requirements), applications may not be accepted for publication on Google Play.
  • The background location permission should only be requested if the location permission has been granted. Otherwise, PermissionRequest will fail.
  • If the option chosen by the user for the background location access request is more restrictive than the option chosen for the location access request, the application will be automatically restarted.
  • On devices running Android 10 or earlier, if location permission has been granted to the application, the background location permission will be granted without displaying a window.
Universal Windows 10 App

Required application feature

When this function is used, an application feature is declared in the application generation wizard.
Required feature: Geolocation
This feature allows the applications to access the geolocation features found on the device or on the computer.
Related Examples:
WM Geolocation Cross-platform examples (WINDEV Mobile): WM Geolocation
[ + ] This example explains how to perform proximity searches with geolocation :
- search around me
- search in a city, at a given address, or close to a specific address.
The results are displayed in a looper and in a map with markers.
Android GPS Android (WINDEV Mobile): Android GPS
[ + ] This example presents the use of the GPS functions of WLanguage in an Android application.
It is used to retrieve at regular interval:
- The latitude
- The longitude
- The altitude
- The speed
- The direction
Component: wd300java.dll
Minimum version required
  • Version 15
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 06/22/2023

Send a report | Local help