-2

Is it possible to do so using JavaScript and/or HTML code without prompting the user?

I wish to print their location(city or country) in text format.

nick zoum
  • 7,216
  • 7
  • 36
  • 80
joe997
  • 45
  • 8
  • 2
    Yes, it is possible. I bet, if you did some research, you could find code for that on your own. – Heretic Monkey Jun 22 '18 at 13:32
  • Possible duplicate of [Get visitors language & country code with javascript (client-side)](https://stackoverflow.com/questions/17680413/get-visitors-language-country-code-with-javascript-client-side) – Sheshank S. Jun 22 '18 at 13:35
  • 1
    Possible duplicate of [Get city name using geolocation](https://stackoverflow.com/questions/6797569/get-city-name-using-geolocation) – Daniel Beck Jun 22 '18 at 13:36

1 Answers1

2

Check out this link: https://www.w3schools.com/Html/html5_geolocation.asp

Using GEOLocation, HTML5 can get your current location.

The code below will not work because:

To use this code on your website, get a free API key from Google. Read more at: https://www.w3schools.com/graphics/google_maps_basic.asp

Once you get an API Key, this code will work on your website. If you would like to see a working version, go here: https://www.w3schools.com/Html/tryit.asp?filename=tryhtml5_geolocation_map

The code basically gets your Lattitude and Longitude and plots it in the google maps.

var x = document.getElementById("demo");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition, showError);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function showPosition(position) {
    var latlon = position.coords.latitude + "," + position.coords.longitude;
    var img_url = "https://maps.googleapis.com/maps/api/staticmap?center="
    +latlon+"&zoom=14&size=400x300&key=AIzaSyBu-916DdpKAjTmJNIgngS6HL_kDIKU0aU";
    document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}
//To use this code on your website, get a free API key from Google.
//Read more at: https://www.w3schools.com/graphics/google_maps_basic.asp

function showError(error) {
    switch(error.code) {
        case error.PERMISSION_DENIED:
            x.innerHTML = "User denied the request for Geolocation."
            break;
        case error.POSITION_UNAVAILABLE:
            x.innerHTML = "Location information is unavailable."
            break;
        case error.TIMEOUT:
            x.innerHTML = "The request to get user location timed out."
            break;
        case error.UNKNOWN_ERROR:
            x.innerHTML = "An unknown error occurred."
            break;
    }
}
<!DOCTYPE html>
<html>
<body>

<p id="demo">Click the button to get your position.</p>

<button onclick="getLocation()">Try It</button>

<div id="mapholder"></div>


</body>
</html>

One more thing, if you want the country and city check out the first answer here: How to get client's IP address using JavaScript?. That should help you out.

Hope this helped!

Sheshank S.
  • 3,053
  • 3
  • 19
  • 39
  • 1
    Yes i had checked this website before asking this question here..but before displaying location is asks manual permission from the visitor, which any visitor wud obviously decline. – joe997 Jun 22 '18 at 13:51
  • 1
    @joe997 you can't do it without that though. the only other way would be to use IP and that isn't very accurate. – Sheshank S. Jun 22 '18 at 14:56
  • @joe997 here look at the first answer here it shows you ways to get IP with location. also if this helped please mark as correct answer https://stackoverflow.com/questions/391979/how-to-get-clients-ip-address-using-javascript – Sheshank S. Jun 22 '18 at 15:01