我正在使用javascript / jquery基于用户当前位置构建Web应用程序。如何在所有浏览器上浏览我的应用程序时获取用户的当前位置?
答案 0 :(得分:2)
您可以使用地理位置对象
查看this MSDN Geolocation Article或Mozilla
navigator.geolocation
Docs
if ("geolocation" in navigator) {
/* geolocation is available */
} else {
/* geolocation IS NOT available */
}
navigator.geolocation.getCurrentPosition(function(position) {
do_something(position.coords.latitude, position.coords.longitude);
});
var watchID = navigator.geolocation.watchPosition(function(position) {
do_something(position.coords.latitude, position.coords.longitude);
});
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
另外,请查看MSDN的this example on JSFiddle,它稍微全面一些。
注意:地理位置仅适用于SSL sites with secure context
您还要求它在所有浏览器中使用。与大多数功能一样,这是不可能的。但您可以检查用户浏览器是否支持navigator.geolocation,如果没有则显示相应的消息。
查看https://caniuse.com/#search=geolocation以查看当前浏览器对地理位置的支持。但总的来说,它得到了支持:
希望有所帮助
答案 1 :(得分:0)
您可以使用地理定位API ..有关详细信息,请参阅此内容 https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation
答案 2 :(得分:0)
我认为类似下面的代码可以提供帮助。你可以调用getLocation(),它会将位置保存在_position变量中,以后可以使用。
var _position;
function getLocation(){
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
var onSuccess = function(position) {
_position = position;
};
function onError(error) {
alert('Error: ' + error.message);
}
答案 3 :(得分:0)
您可以使用所有现代浏览器中提供的Geolocation.getCurrentPosition API。通过使用此功能,您可以通过最佳方式为其设备获取用户的位置,即通过GPS或IP。