很多时候要定位到当前所在的位置,谷歌地图 API 没找到,然后网上搜的是通过原生js geolocation来实现的。
代码如下:
var x=document.getElementById("demo");
getLocation();
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
var lng = position.coords.longitude;
var lat = position.coords.latitude;
var site = lat.toFixed(6)+','+lng.toFixed(6);
console.log(site)
document.getElementById("demo").innerHTML = site;
}
当发现能实现之后,确实是内心特别欣喜。然而,放到服务器端,就会有警告提示: getCurrentPosition() and watchPosition() are deprecated on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.
翻译一下,大致意思如下:
getCurrentPosition() 和 watchPosition()这两个方法在不安全的环境下不建议使用,在以后的规范可能不会支持。你应该考虑appliaction的安全性,比如使用https。详细情况请看https://goo.gl/rStTGz
因为获取位置信息,以及监控位置的变化这些操作都属于敏感性操作,所以browsers在执行都会非常谨慎。它需要你在安全的环境并且获取用户的同意才会执行。所以,用https协议 会正常显示的。
谷歌了好久,貌似都是这个意思,如果大家有其它办法,还望赐教。O(∩_∩)O~