共有三种方式可以获取定位
1.通过浏览器自带的方法获取
// if (navigator.geolocation) {
// navigator.geolocation.getCurrentPosition(onSuccess, onError)
// } else {
// // alert("您的浏览器不支持使用HTML 5来获取地理位置服务");
// getpagelistdata('', '')
// }
// //定位数据获取成功响应
// function onSuccess(position) {
// var longitude = position.coords.longitude
// var latitude = position.coords.latitude
// getpagelistdata(longitude, latitude)
// }
// //定位数据获取失败响应
// function onError(error) {
// getpagelistdata('', '')
// }
2.若为微信浏览器同时配置相应的jdk之后,可以通过自带的方式获取
wx.config({
appId: configdata.appId,
timestamp: configdata.timestamp,
nonceStr: configdata.nonceStr,
signature: configdata.signature,
jsApiList: [
'updateAppMessageShareData',
'wx-open-launch-app',
'updateTimelineShareData',
'getLocation'
],
openTagList: ['wx-open-launch-app'],
})
wx.ready(function () {
wx.updateAppMessageShareData({
title: shareTitlephone,
desc: descContent,
link: lineLink,
imgUrl: imgUrl,
success: function () {},
cancel: function () {
},
})
wx.updateTimelineShareData({
title: shareTitle,
desc: descContent,
link: lineLink,
imgUrl: imgUrl,
success: function () {},
cancel: function () {
},
})
wx.getLocation({
type: "gcj02",
success: function (res) {
latitude = res.latitude;
longitude = res.longitude;
getpagelistdata(longitude,latitude);
},
cancel: function (res) {
getpagelistdata("","");
},
});
})
通过高德插件获取,此方法适用于PC端
引入高德定位jdk
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.1&key=*****"></script>
html
<div id="container" style="display: none;"></div>
js
前端高德地图定位
function baiduapigetaddress(){
var map = new AMap.Map('container', {
resizeEnable: true
});
map.plugin('AMap.Geolocation', function() {
geolocation = new AMap.Geolocation({
enableHighAccuracy: true, //是否使用高精度定位,默认:true
timeout: 10000, //超过10秒后停止定位,默认:无穷大
noIpLocate: 0,
maximumAge: 0, //定位结果缓存0毫秒,默认:0
convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
showButton: false, //显示定位按钮,默认:true
buttonPosition: 'LB', //定位按钮停靠位置,默认:'LB',左下角
buttonOffset: new AMap.Pixel(10, 20), //定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
showMarker: false, //定位成功后在定位到的位置显示点标记,默认:true
showCircle: false, //定位成功后用圆圈表示定位精度范围,默认:true
panToLocation: false, //定位成功后将定位到的位置作为地图中心点,默认:true
zoomToAccuracy: false //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
});
map.addControl(geolocation);
geolocation.getCurrentPosition();
AMap.event.addListener(geolocation, 'complete', onComplete);
AMap.event.addListener(geolocation, 'error', onError);
});
function onComplete(data) {
var xcity = data.addressComponent.city;
var province = data.addressComponent.province;
var district = data.addressComponent.district;
var localaddressmess = data.formattedAddress;
localaddress=province+xcity+district;
var lng = data.position.getLng()
var lat = data.position.getLat()
if(lng=="" || lat==""){
getpagelistdata(lng,lat);
}else{
getpagelistdata("","");
}
}
function onError(data) {
getpagelistdata("","");
var xcity = ""
}
}