我想获取用户当前位置的用户纬度和经度值。我的asp.net Web应用程序运行在 HTTP 协议上,并且根据Google的开发人员指南,该应用程序必须运行在HTTPS协议上才能使用HTML5 GeoLocation Service。我以某种方式找到了https://stackoverflow.com/a/39367531/7057220这个解决方案,并且尝试了这个
<script type="text/javascript">
$(document).ready(function () {
debugger;
var apiGeolocationSuccess = function (position) {
alert("API geolocation success!\n\nlat = " + position.coords.latitude + "\nlng = " + position.coords.longitude);
};
var tryAPIGeolocation = function () {
debugger;
jQuery.post("https://www.googleapis.com/geolocation/v1/geolocate?key=MyAPIKey", function (success) {
apiGeolocationSuccess({ coords: { latitude: success.location.lat, longitude: success.location.lng } });
})
.fail(function (err) {
alert("API Geolocation error! \n\n" + err);
});
};
var browserGeolocationSuccess = function (position) {
debugger;
alert("Browser geolocation success!\n\nlat = " + position.coords.latitude + "\nlng = " + position.coords.longitude);
};
var browserGeolocationFail = function (error) {
switch (error.code) {
case error.TIMEOUT:
alert("Browser geolocation error !\n\nTimeout.");
break;
case error.PERMISSION_DENIED:
if (error.message.indexOf("Only secure origins are allowed") == 0) {
tryAPIGeolocation();
}
break;
case error.POSITION_UNAVAILABLE:
alert("Browser geolocation error !\n\nPosition unavailable.");
break;
}
};
var tryGeolocation = function () {
debugger;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
browserGeolocationSuccess,
browserGeolocationFail,
{ maximumAge: 50000, timeout: 20000, enableHighAccuracy: true });
}
};
tryGeolocation();
});
</script>
问题是,每当我运行此代码时,它总是给我不正确的纬度和经度值。我想知道我在做什么错。因此,如何在没有SSL连接的情况下使用地理位置定位
答案 0 :(得分:0)
您可以使用我在W3schools上找到的简单Javascript代码
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
alert('Latitude: '+position.coords.latitude +'Longitude: '+ position.coords.longitude);
}
答案 1 :(得分:0)
你可以试试
<!DOCTYPE html>
<html>
<body>
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script>
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) {
var a = position.coords.latitude + ',' + position.coords.longitude;
alert(a);
}
</script>
</body>
</html>