调用html geolocation的js使用手机浏览器就能调用成功,pc的浏览器就不能,为什么呢?
调用html geolocation的js使用手机浏览器就能调用成功,pc的浏览器就不能,为什么呢?
(而且手机测试除了chrom不知道为啥不行之外其他浏览器(safari,百度浏览器...)基本都怎样都可以,但是pc端的刷新几次就会失效)思路是首先用 HTML geolocation API拿到 经纬度,然后将经纬度发送请求传给百度地图 api, 进行反向地理编码的地址查询。
下面是源码,求指导:
<!DOCTYPE html>
<html>
<body>
<p id="demo">click here to get your location:</p>
<button onclick="getLocation()">click here</button>
<script>
var x=document.getElementById("demo");
function getLocation(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition);
}else{
alert("not supported");
}
}
function showPosition(position){
var positionOptions={
enableHighAccuracy:true,
timeout:5000, //单位毫秒
maximumAge:1000*60
}
lat=position.coords.latitude;
lon=position.coords.longitude;
//var map = new BMap.Map("container"); // 创建Map实例
var point = new BMap.Point(lon, lat); // 创建点坐标
//map.centerAndZoom(point,15); //
//map.enableScrollWheelZoom();
var gc = new BMap.Geocoder();
gc.getLocation(point, function(rs){
var addComp = rs.addressComponents;
alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
});
}
</script>
</body>
</html>