微信小程序通过经纬度计算两点之间距离
小程序中通过经纬度计算两点之间的距离km
1.拾取两地经纬度坐标 。
data:{
//当前定位位置
latitude: null,
longitude: null,
// 目的地坐标
latitude2: 116.403119,
longitude2: 39.913607,
}
2.当地坐标的获取。
onLoad: function (options) {
if (app.globalData.address) {
this.setData({
address: app.globalData.address,
})
}
//获取当前位置
wx.getLocation({
type: 'gcj02',
success: (res) => {
console.log("当前位置:", res)
const distance_new = this.getDistance(res.latitude, res.longitude, this.data.latitude2,this.data.longitude2);
console.log(distance_new);
let distances = this.data.productAll.map((item)=>{
for(let i = 0;i<item.length;i++){
console.log(i);
item[i].distance = distance_new;
console.log(item[i].distance);
}
return item;
})
this.setData({
productAll: distances
})
console.log(this.data.productAll);
}
})
},
// map方法的作用不难理解,即“映射”,也就是原数组被“映射”成对应新数组。
3.计算距离函数
// 计算距离函数
Rad(d) {
//根据经纬度判断距离
return d * Math.PI / 180.0;
},
getDistance(lat1, lng1, lat2, lng2) {
// lat1用户的纬度
// lng1用户的经度
// lat2商家的纬度
// lng2商家的经度
var radLat1 = this.Rad(lat1);
var radLat2 = this.Rad(lat2);
var a = radLat1 - radLat2;
var b = this.Rad(lng1) - this.Rad(lng2);
var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * 6378.137;
s = Math.round(s * 10000) / 10000;
s = s.toFixed(1) + 'km' //保留两位小数
console.log('经纬度计算的距离:' + s)
return s
},
4.这样就可以计算两点之间的距离了。
微信小程序通过经纬度计算两点之间距离的更多相关文章
- 【微信开发】微信小程序通过经纬度计算两地距离php代码实现
需求: 要求做个根据用户当前位置获取周围商家地址,并且按照由近到远排序, 方法一: 代码层实现 封装方法: /** * @desc 根据两点间的经纬度计算距离 * @param float $lat ...
- sql server2008根据经纬度计算两点之间的距离
--通过经纬度计算两点之间的距离 create FUNCTION [dbo].[fnGetDistanceNew] --LatBegin 开始经度 --LngBegin 开始维度 --29.49029 ...
- 微信小程序-获取经纬度
微信小程序-获取经纬度 最近公司新功能 要求在外的市场人员 发送位置信息回来. 用的还是微信小程序开发.... 微信小程序 提供一个接口 getLocation 这个接口反回来的位置 相对实际位置 相 ...
- C#面向对象思想计算两点之间距离
题目为计算两点之间距离. 面向过程的思维方式,两点的横坐标之差,纵坐标之差,平方求和,再开跟,得到两点之间距离. using System; using System.Collections.Gene ...
- 微信小程序获取经纬度所在城市
小程序的wx.getLocation()获得是经纬度并不包含地名,所以要通过经纬度用相应的地图转换出地名(本文使用的是百度地图) // 获取坐标 onLoad: function (options) ...
- 微信小程序与内嵌webview之间来回跳转的几点总结,以及二维码的使用
截止到发稿小程序支持的功能,后续如果小程序更新在完善文稿. 1. 小程序可以内嵌组件跳转到h5页面,前提是在小程序后台配置相应的业务域名.新打开的h5页面会替代小程序组件内的其它组件,即为h5不能与小 ...
- uniapp 微信小程序 根据经纬度解析地址(腾讯地图)
//引入腾旭地图sdk import QQMapWX from '../../common/qqmap-wx-jssdk.js' onLoad(){ this.getMapAddress() }, m ...
- js通过经纬度计算两点之间的距离
最近这几天在做地图的时候,获取到目的地经纬度和当前所在位置的经纬度,通过这几个参数,用js代码就能获取到这两点之间的直线距离: function (lat1, lng1, lat2, lng2) { ...
- 微信小程序 - 输入起点、终点获取距离并且进行路线规划(腾讯地图)
更新: 2018-9-19 腾讯官方经纬度转详细地址,详细地址转经纬度 index.wxml <!--地图容器--> <map id="myMap" style= ...
- 【微信小程序】mpvue中页面之间传值(全网唯一真正可行的方法,中指推了一下隐形眼镜)
摘要: mpvue中页面之间传值(注意:是页面之间,不是组件之间) 场景:A页面跳转B页面,在B页面选择商品,将商品名带回A页面并显示 使用api: getCurrentPages step1: A页 ...
随机推荐
- uniapp与原生交互
1.项目中引入 DSBridge.js 文件 var bridge = { default: this, call: function(b, a, c) { var e = ""; ...
- 主线程 子线程 调用 ThreadId BeginInvoke调用和Invoke调用
BeginInvoke是异步线程执行 class Program { static int TakeWhile() { int threadid = Thre ...
- Treetop Lights使用条款与免责协议
Treetop Lights (以下简称"我们")在此特别提醒您务必认真阅读.充分理解本<使用条款与免责协议>(以下简称"本协议")中各条款并选择是 ...
- html元素全屏展示
参数传入dom对象即可,注意不是jQuery对象,Vue下兼容 /** * 面板全屏展示 */ fullscreen: function () { if (this.isFullScreen) { / ...
- CPU、内存的占用率
要获取不包含百分比符号的内存占用率: #free -t | awk 'NR ==2 {print "Current Memory Utilization is: "$3/$2*10 ...
- Freertos stack-overflow 检测
(出现的地址信息没有特定意义,仅供参考) vApplicationStackOverflowHook() at rtos.c:371 0x55aa vTaskSwitchContext() at ta ...
- AndroidStudio 集成kotlin,以及Kotlin-gradle-plugin-1.5.0.jar 下载失败
配置Kotlin buildscript { ext.kotlin_version = '1.5.0' repositories { maven{url 'http://maven.aliyun.co ...
- Windows10 Vmware安装Centos虚拟机
准备工作 安装Vmware软件 下载地址:https://www.vmware.com/cn/products/workstation-pro.html 下载Centos7 镜像 下载地址:https ...
- 大规模并行处理器编程实战_原书第2版_pdf
链接:https://pan.baidu.com/s/1c8ez8dCTz5bUQchwhXAF7w 提取码:tc1f
- vi 异常退出出现 E325:Attention的解决办法
在linux系统下使用vi编辑程序的时候,没有保存退出,直接关闭了,出现了以下的情况: 打开就会显示filename.c.swap已经存在. 这是因为vi在编辑文件时会创建一个交换文件swap fil ...