H5与微信获取用户当前位置

微信和h5原生方法都提供了获取用户地理位置的方法,需要使用第三方的逆地理编码的方式获得用户的实际位置信息。

1、H5方法

H5的新特性中加入了获取地理位置的方法window.navigator.geolocation,使用该方法我们可以方便的获取用户的地理位置,在通过第三方的逆地理编码的方法可以获得用户所在的实际位置。我用的是百度地图的web API,需要使用者在百度地图的开发者平台上申请一个KEY,

var startGps=function (){
   if(window.navigator.geolocation){
      window.navigator.geolocation.getCurrentPosition(getSuccess,getError);
   }else{
      $rootScope.SelectPayCityName = "北京市";
   }
};
var getSuccess=function(position){
var latlon = position.coords.latitude+','+position.coords.longitude;
//baidu
var url = "https://api.map.baidu.com/geocoder/v2/?ak=&callback=renderReverse&location="+$scope.latlon+"&output=json&pois=0";
$.ajax({ type: "GET", dataType: "jsonp", url: $scope.url , success: function (data) { if(data.status==0){
		var SelectPayCityName=data.result.addressComponent.city;
}else{
		var SelectPayCityName = "北京市";
} }, error: function (data) {
		var SelectPayCityName = "北京市"
} });};
var getError=function(){
	var SelectPayCityName = "北京市";
};
2、微信公众平台

微信直接提供了获取用户的地理位置的方法,需要我们在wx,cofig()中获取调用的权限

wx.config({
   debug : false,
   appId : apiData.appid,
   timestamp : apiData.timestamp,
   nonceStr : apiData.noncestr,
   signature : apiData.signNature,
   jsApiList : ['scanQRCode','closeWindow','chooseWXPay','getLocation']
});
获得权限后我们就可以直接使用wx.getLocation()方法获得用户的地理位置了。

var getCityName=function(){
   wx.getLocation({
      "type": 'wgs84',
      "success": function (res) {    
		var latitude = res.latitude; // 纬度,
var longitude = res.longitude; //精度 //百度地图逆地理编码 var url = "https://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location="+latitude+','+longitude+"&output=json&ak=4Dfl9xwPGejMePRRzASXZAoIznQY7fe2"; $.ajax({ type: "GET", dataType: "jsonp", url:url , success: function (data) { if(data.status==0){ var SelectPayCityName=data.result.addressComponent.city; }else{ var SelectPayCityName = "北京市"; } }, error: function (data) { var SelectPayCityName = "北京市"; } }) }, "cancel":function(res){ var SelectPayCityName = "北京市"; } });}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值