-->
Some decades ago people used to work in an office. And occasionally they went on business trips. Nowadays users are much more mobile. They can work from home, form the office or from a field location. So their location varies and it can be useful information for the applications they use.The
location might be tied to a customer or a fact that should be reported. This
series of blogposts will deal with determining the location in Oracle APEX, and
how to use and display it:
Part 2: Using Oracle Spatial
Part 3:
Display location(s) on map
Part 4:
Correct locations on map
Part 5:
Getting location data from photos
The parts
without link are not yet available.
There is an
example application available at : https://github.com/dickdral/apex_location_demo
Getting your location in
the browser
In order to
retrieve your GPS location in the browser some JavaScript needs to be applied:
function
getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
alert(`Latitude:
${position.coords.latitude} \n` +
`Longitude:
${position.coords.longitude}`);
});
} else {
alert("Geolocation is not supported by
this browser.");
}
}
The most
important line is the call to navigator.geolocation.getCurrentPosition.
This is the function to retrieve the GPS
location. As this may take several seconds the function is asynchronous. The function to be performed after retrieval
of the location is the argument for the function. There also is a check when
the function is not available.
After the
call JavaScript will immediately continue with others tasks. Otherwise the page
would hang until the function returns.
NB The function can only be called from a https
web site.
Accuracy
In ideal
situations the accuracy of the location is within a few meters. In less
favorable situations this might expand to tens of even hundred of meters. Especially
in an urban environment with many high buildings the visiblity of the GPS
sattelites is less good and the accuracy is less accordingly.
More
information on GPS accuracy can be found here
Privacy
Privacy can
be an issue when you retrieve and store the location of employees, customers
etc. The privacy legislation differs per country.
As of May
2018 the General Data Protection Regulation is issued by the EU. This law
contains high penalties for offenders. It is wise to take notice of the privacy
regulations in the countries where the application will be used.
Getting location using a
APEX plug-in
For APEX
developers it is not necessary to write JavaScript to retrieve the GPS
location. You can use the Store location plug-in that can be found on https://apex.world.
After
importing the plug-in in your application, you can reference it in a dynamic
action. All you need to fill in are the APEX items to store the latitude and
longitude once the location is retrieved.
To define
follow-up actions a custom DA can be defined acting on the event location-retreived.
Happy
apexing ;-)