㈠ js 根据经纬度获取地址(百度地图)
$.ajax({
url: 'http://api.map..com/geocoder?ak=bOttbSRnkbGHc958rTjvXCHj&location=39.983424,116.322987&output=json&pois=1',
datatype: 'json',
type: 'get',
success: function (data) {
var lng= data.result.location.lng;
var lat=data.result.location.lat;
}
});
㈡ javascript 怎么获得手机地理位置 比如经纬度
<script>
navigator.geolocation.getCurrentPosition(//该函数有如下三个参数
function(pos){//如果成果则执行该回调函数
alert(
'经度:'+pos.coords.latitude+
'纬度:'+pos.coords.longitude+
'高度:'+pos.coords.altitude+
'精确度(经纬):'+pos.coords.accuracy+
'精确度(高度):'+pos.coords.altitudeAccuracy+
'速度:'+pos.coords.speed
);
},function(err){//如果失败则执行该回调函数
alert(err.message);
},{//附带参数
enableHighAccuracy:false,//提高精度(耗费资源)
timeout:3000,//超过timeout则调用失败的回调函数
maximumAge:1000//获取到的地理信息的有效期,超过有效期则重新获取一次位置信息
}
);
</script>
>> 参考Lecaf 同学的博文
>> 需要支持HTML5的浏览器才能支持
>> 哪怕支持HTML5的浏览器支持也不一定很好
㈢ 如何用JS实现:通过浏览器获得用户地理位置,计算预置地理位置与用户地理位置之间的距离,返回数字文本
其实有了 Haversine 公式,两点坐标之后就很简单了。你提供的上海范围太大,且没有坐标,下面例子以上海虹桥机场为参考(纬度:31.2,经度:121.4)。
要从地名获得它的经纬度应该需要有一个庞大的数据库,这点没有仔细研究过。谷歌地图应该会提供此类的 API。你可以网络一下"经纬度查询",有很多网站提供此功能。
测试的时候最好用 IE9 或 Opera 高版本,Firefox 和 Safari 有时会获取不到地理位置,Chrome 会自动屏蔽本地文件。
<script type="text/javascript">
// Haversine 公式
function getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) {
var R = 6371;
var dLat = deg2rad(lat2 - lat1);
var dLon = deg2rad(lon2 - lon1);
var a =
Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
return d;
}
function deg2rad(deg) {
return deg * (Math.PI / 180);
}
// 上海虹桥机场经纬度
var lat = 31.2, lon = 121.4;
// 尝试获取地理位置
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(pos) {
var d = getDistanceFromLatLonInKm(
pos.coords.latitude,
pos.coords.longitude,
lat, lon).toFixed(2);
alert("当前位置距上海虹桥机场:" + d + "公里");
});
}
else {
alert("浏览器不支持 geolocation");
}
</script>
㈣ js中如何得到客户端的地理位置
那个湖南省长沙市是通过IP地址得到的
JS是客户端脚本无法获取IP地址的
必须要通过后台程序获得到IP地址传到前端 这样才可以用JS来获取到