微信小程序计算两坐标距离

微信小程序计算两坐标距离,第1张

对于iOS或者安卓同学来说,可能会觉得特别简单吧。OC里就有原生类CLLocation计算坐标点距离。当然,大多数时候我们都是直接使用第三方计算,比如百度SDK。

但是接触到微信小程序后,由于可能刚起步,许多API并不完善。像百度SDK关于微信小程序的就没有提供这样的接口去计算。 百度地图微信小程序JS API

仔细翻一番看看,在开发指南->获取地图数据 菜单下只看到4个最基本的功能(POI检索、POI检索热词联想、逆地址解析、天气查询),并没有看到关于计算距离的。看到这些还好,至少不会继续下去入坑了。

后来我就度娘了,第一条检索就是腾讯地图开放平台的内容。这也是为什么今天我要写这篇文章的原因,我入坑了。友情提示,使用腾讯地图确实可以计算两坐标距离,但是呢?只能是10km以内的距离。不然调用后返回结果: status: 373, message: "起终点距离超长"

如果不在意只是10km以内距离的话,想要去集成腾讯地图SDK,文档在此  腾讯地图微信小程序JavaScript SDK

最终解决方案只能自己算了,不用第三方了。

//计算两坐标点之间的距离

  getDistance: function (lat1, lng1, lat2, lng2) {

    lat1 = lat1 || 0;

    lng1 = lng1 || 0;

    lat2 = lat2 || 0;

    lng2 = lng2 || 0;

    var rad1 = lat1 MathPI / 1800;

    var rad2 = lat2 MathPI / 1800;

    var a = rad1 - rad2;

    var b = lng1 MathPI / 1800 - lng2 MathPI / 1800;

    var r = 6378137;

    return (r 2 Mathasin(Mathsqrt(Mathpow(Mathsin(a / 2), 2) + Mathcos(rad1) Mathcos(rad2) Mathpow(Mathsin(b / 2), 2))))toFixed(0)

  },

需要注意的是,该方法返回单位为米,如果想要转换成公里,除以1000即可。

小程序定位关闭步骤如下:

1,点击你想要关闭位置的小程序。

2,进入后右上角三个点,打开。

3,点击想要关闭位置的小程序名称,进入小程序详情界面,点右上角菜单按钮。

4,接着点击“设置”按钮,进入小程序的管理权限管理界面,点击“地理位置”,并将它关闭,这样小程序位置定位就被取消了,打开定位权限的方法相同。

env()和constant(),是IOS11新增特性,Webkit的css函数,用于设定安全区域与边界的距离,有4个预定义变量:

safe-area-inset-top

safe-area-inset-bottom

safe-area-inset-left

safe-area-inset-right

注意:

1写的时候遵循先constant()(兼容 IOS<112)后env()(兼容 IOS>112)。

以上就是关于微信小程序计算两坐标距离全部的内容,包括:微信小程序计算两坐标距离、小程序途游怎么关距离、小程序: 安全距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/10121040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存