登录

获取微信共享收货地址再计算距离目标地址多远-微信公众号接口开发

1970-01-01 ·其他相关

微信共享收货地址,计算距离,微信公众号

微信公众号开发已被众多开发者熟知,那么有些人就在想如何更深入的开发微信公众号,比如有如下场景,用户获取微信共享收货地址与商家位置,然后显示地址和商家距离多少,微信功能虽多,但不能应当对所有情况,官方文档只找到微信公众号共享收货地址接口并没有能获取地址的距离。那我们能否通过其他方法实现目标。

微信公众号可以获取到地址或位置,转换为经纬度  或者 微信公众号地理位置接口请求经纬度 ,再通过经纬度计算2地距离。

取签名:

$addr = new WechatSign("wx578947d6a64472trc", "488a8f7bad2c0b474de7aa824485d");
$addrSign = $addr->GetSignPackage();
$this->assign("addrSign", $addrSign);



?引入js:

<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>

<script type="text/javascript">
wx.config({
debug: false, // 开调试
appId: "{$addrSign["appId"]}", // 标识
timestamp: "{$addrSign["timestamp"]}", //签名时间戳
nonceStr: "{$addrSign["nonceStr"]}", // 随机串
signature: "{$addrSign["signature"]}",// 签名,
jsApiList: ["checkJsApi","openAddress"] // JS接口列表
});
wx.ready(function () {
});

function getaddr() {
wx.openAddress({
success: function (res) {
// 成功
alert(JSON.stringify(res));
},
cancel: function (errMsg) {
// 取消
//alert(errMsg);
}});
}
</script>

?不需要调取地址,放wx.ready(function () {});里

点击跳转到地址


php 经纬度之间的距离

/**
 * 求两个已知经纬度之间的距离,单位为米
 * 
 * @param lng1 $ ,lng2 经度
 * @param lat1 $ ,lat2 纬度
 * @return float 距离,单位米
 * @author www.Alixixi.com 
 */
function getdistance($lng1, $lat1, $lng2, $lat2) {
    // 将角度转为狐度
    $radLat1 = deg2rad($lat1); //deg2rad()函数将角度转换为弧度
    $radLat2 = deg2rad($lat2);
    $radLng1 = deg2rad($lng1);
    $radLng2 = deg2rad($lng2);
    $a = $radLat1 - $radLat2;
    $b = $radLng1 - $radLng2;
    $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137 * 1000;
    return $s;


官方文档虽然没有微信公众号计算俩地距离接口,但还是可以用其他方式曲线救国。


文章来源:风寻微信公众号开发网络 作者:小鼠  xiaosusu@163.com  转载请注明来源

· END ·

TAG:微信共享收货地址,计算距离,微信公众号 来源:网络

热门标签

首页 - 导航 - 免责 - 官方微信 - 用户反馈

© 2019 GOODTEXT.CN