ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Standard functions / Geolocation functions
  • Overview
  • Implementing the GPS management
  • Checking whether the GPS is enabled
  • Be notified when the GPS status changes
  • Position tracking
  • Ending the use of GPS functions
  • When to use each function?
  • Functions available according to the platforms
  • Summary table
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
Managing geolocation and GPS
Overview
WINDEV Mobile and WEBDEV allow you to exploit geolocation and GPS features found on mobile devices and browsers.
Implementing the GPS management

Checking whether the GPS is enabled

To check whether the GPS is enabled, all you have to do is use GPSStatus.
Example:
// Est-ce-que le GPS est actif ?
IF GPSStatus() <> gpsEnabled THEN
	Error("Le GPS n'est pas en état de fonctionner.", ...
		"Veuillez l'activer pour avoir accès à cette application.")
	EndProgram()
END

Be notified when the GPS status changes

To be notified when the GPS status changes, simply call GPSStatus and specify the name of the procedure that will handle the current GPS status.
Example:
GPSStatus(_ChangementEtatGPS)
The procedure code is as follows:
PROCEDURE _ChangementEtatGPS(Etat)

IF EtatActuel = Etat THEN RETURN
EtatActuel = Etat
EndTimerSys(TIMER_RECUPERATION)
SWITCH Etat
	CASE gpsEnabled 
		// Le fournisseur a été activé par l'utilisateur.
		LIB_Etat = "GPS activé"
	CASE gpsDisabled 
		// Le fournisseur a été désactivé par l'utilisateur.
		LIB_Etat = "GPS désactivé"
	CASE gpsOffService 
		// Le fournisseur est hors-service.
		LIB_Etat = "GPS hors-service"
	CASE gpsUnavailable 
		// Le fournisseur est temporairement indisponible.
		LIB_Etat = "GPS indisponible"
	CASE gpsAvailable 
		// Le fournisseur est disponible.
		LIB_Etat = "GPS disponible"
		// Demande à suivre le déplacement avec un temps maximum entre deux appels de 
		// GPSSuitDéplacement(_RécupèrePosition, 1000)
	OTHER CASE
END
In this procedure, if GPS is enabled, a specific procedure is used to track the device.

Position tracking

To track the device's location, simply use GPSFollowMovement and specify the name of the procedure that will handle location changes.
Example:
GPSFollowMovement(_RécupèrePosition, 1000)
The code of the procedure can be as follows:
PROCEDURE _RécupèrePosition(MaPosition)
// Mise à jour des informations sur la position
// Latitude et longitude
LIB_Latitude = StringBuild("Latitude : %1", MaPosition.Latitude)
LIB_Longitude = StringBuild("Longitude : %1", MaPosition.Longitude)
// Vitesse
IF MaPosition.VitesseValide = True THEN
	LIB_Vitesse = StringBuild("Vitesse : %1 m/s", MaPosition.Vitesse)
	IMG_VALIDITE_VITESSE = IMG_OK
ELSE
	LIB_Vitesse = "Vitesse : N/A"
	IMG_VALIDITE_VITESSE = IMG_PASOK
END
// Altitude
IF MaPosition.AltitudeValide = True THEN
	LIB_Altitude = StringBuild("Altitude : %1 m", MaPosition.Altitude)
	IMG_VALIDITE_ALTITUDE = IMG_OK
ELSE
	LIB_Altitude = "Altitude : N/A"
	IMG_VALIDITE_ALTITUDE = IMG_PASOK
END
// Direction
IF MaPosition.DirectionValide = True THEN
	LIB_Direction = StringBuild("Direction : %1 ° E", MaPosition.Direction)
	IMG_VALIDITE_DIRECTION = IMG_OK
ELSE
	LIB_Direction = "Direction : N/A"
	IMG_VALIDITE_DIRECTION = IMG_PASOK
END
LIB_Dernière_mise_à_jour = StringBuild("Dernière mise à jour le %1 à %2.", ...
	DateToString(MaPosition.Datemesure.PartieDate), ...
	TimeToString(MaPosition.Datemesure.PartieHeure))
LIB_Dernière_mise_à_jour.Visible = True
In this code, MyLocation is a geoPosition variable. The properties of this type of variable are used to find out the location characteristics.

Ending the use of GPS functions

Depending on the selected settings and on the call frequency, geolocation functions can 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.
When to use each function?
FunctionWhen to use it? AccuracyEnergy consumption
geoTrackingXXXPermanent tracking of location changes, even when the application is in the background.High accuracy, but the frequency of notifications is low and varies depending on the system. Low
GPSFollowMovementPermanent tracking of location changes when the application is in the foreground.Accuracy according to GPSInitParameter. Consumption according to GPSInitParameter.
GPSDetectPositionNotification of the proximity of a given location when the application is in the foreground. Accuracy according to GPSInitParameter. Consumption according to GPSInitParameter.
GPSGetPositionGet current location at a specific moment when the application is in the foreground. It may take long, depending on the surroundings (inside a building, cloudy day, etc.).Accuracy according to GPSInitParameter. Depends on the number of calls.
GPSLastPositionImmediately get the last known location of the device.Low consumption, since it depends on when the last location was actually retrieved. Also depends on GPSInitParameter. Low consumption.
Functions available according to the platforms

Summary table

The table below presents the different geolocation/GPS functions and the different platforms for which they are currently available (this table can evolve with each version):
Functions
geoAzimuthXX
geoDistanceXX
geoGetAddressXX
geoGetAreaXXX
geoRunAppXX
geoTrackingDisableXX
geoTrackingEnableXX
geoTrackingProcedureXX
geoTrackingStatusXX
GPSDetectPositionX
GPSEndXX
GPSFollowMovementXXX
GPSGetPositionXXX
GPSInfoX
GPSInitParameterXX
GPSLastPositionXXX
GPSStatusXXX
GPSStopDetectionX
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.
Minimum version required
  • Version 16
This page is also available for…
Comments
video gpsgetposition
https://youtu.be/4MqAx_qiFts

https://windevdesenvolvimento.blogspot.com/2019/01/dicas-1987-windev-mobile-dicas-14.html


amarildo
16 Jan. 2019
Endereço das coordenadas
https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/519-busca-endereco-rota-endereco-das-coordendas-523/read.awp?hl=enderecodascoordenadas

https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/2875-informatica-exemplo-google-maps-com-json-retornando-distancia/read.awp?lastview
BOLLER
10 Nov. 2018

Last update: 03/27/2025

Send a report | Local help