1、通过以下代码 获取经纬度
getlocationpoint()
function getlocationpoint() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
latitude = position.coords.latitude; //获取纬度
longitude = position.coords.longitude; //获取经度
alert(latitude)
});
} else {
alert("不支持定位功能");
}
}
2、方法1有一个弊端:ios下需要访问https域名下的网址才可以生效。
因此如果项目是运行在微信浏览器中,那么可以直接接入微信sdk,调用微信自带的过去经纬度方法,并通过百度地图的api进行将经纬度转为真是坐标
wx.ready(function () {
wx.getLocation({
type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success: function (res) {
var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
// 不准确的经纬度
setCookie("lngHome1", longitude)
setCookie("latHome1", latitude)
var speed = res.speed; // 速度,以米/每秒计
var accuracy = res.accuracy; // 位置精度
var point = new BMap.Point(getCookie("lngHome1"), getCookie("latHome1"))
translateCallback = function (point) {
// setCookie("lngHome", point.lng)
// setCookie("latHome", point.lat)
// 定位的经纬度
setCookie("Locallng", point.lng)
setCookie("Locallat", point.lat)
}
setTimeout(function () {
BMap.Convertor.translate(point, 0, translateCallback); //真实经纬度转成百度坐标
}, 100);
setInterval(function () {
var geoc = new BMap.Geocoder();
var ggPoint = new BMap.Point(getCookie("lngHome1"), getCookie("latHome1"))
var pt = ggPoint;
geoc.getLocation(pt, function (rs) {
var addComp = rs.addressComponents;
// setCookie("cityHome", addComp.city)
setCookie("LocalCity", addComp.city)
setCookie("provinceHome", addComp.province)
});
}, 100)
}
});
});