I have 2 global variables and changing them into a function but it's still shows as undefined.
var lat
var long;
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
} else
{
console.log("Geolocation is not supported by this browser.");
}
}
function showPosition(position)
{
lat = position.coords.latitude;
long = position.coords.longitude;
}
getLocation();
console.log(lat + " " + long);
I have checked other questions on this site but none seem to have answer to this. When I check inside the showPostion() function, it shows actual coordinates. I am new to js please help.
Edit:
I have another function in which I want to access global variables.
function generate_list(params, fromPageLoad)
{
var ajax_url = jQuery('#ajax_post_url').val();
var data = { action: 'generate_list', latitude: lat, longitude: long };
var extended_data = jQuery.extend(data, params);
jQuery.ajax({
type: 'POST',
data: extended_data,
url: ajax_url,
success: function (data) {
//console.log(data);}
}
This function is getting called on the loading of the page with dynamic parameters.
I also tried to return lat lang in showPosition() but it's not working. The 'POST' or 'GET' method doesn't return coordinates variable.
function showPosition(position)
{
var ajax_url = jQuery('#ajax_post_url').val();
var lat = position.coords.latitude;
var long = position.coords.longitude;
jQuery.ajax({
type: 'POST',
data: { lat: lat,long: long },
url: ajax_url,
success: function(data)
{
}
});
console.log("Latitude: " + position.coords.latitude +
"Longitude: " + position.coords.longitude);
}
If user allow the location, I want to change the list.