当前位置: 首页 > news >正文

插值计算两个经纬度之间点,平滑移动Marker,两个地理坐标之间生成更多采样点

场景:平滑称动Marker,两个地理坐标之间生成更多采样点
来源:https://github.com/ewoken/Leaflet.MovingMarker/blob/master/MovingMarker.js

/*** 插值计算两个经纬度之间点;** @param p1 起点* @param p2 终点;* @param duration 总时长* @param t 当前时间;* @returns*/
function interpolatePosition(p1, p2, duration, t) {var k = t / duration;k = k > 0 ? k : 0;k = k > 1 ? 1 : k;let lat = p1.lat + k * (p2.lat - p1.lat);let lng = p1.lng + k * (p2.lng - p1.lng);return [lng, lat];
}function getAllPoint() {const p1 = {lat: 39.887487, // 31.929613,lng: 116.362209, // 118.632093,};const p2 = {lat:39.878002, //31.930489,lng: 116.422897, // 118.633174,};// 生成10个点const totalTime = 10;let ret = [];for (let i = 0; i < totalTime ; i++) {const newPoint = interpolatePosition(p1, p2, totalTime, i);ret.push(newPoint);}console.log("ret: ", ret);
}getAllPoint();

结果:

ret:  [[ 116.362209, 39.887487 ],[ 116.36827779999999, 39.8865385 ],[ 116.3743466, 39.88559 ],[ 116.3804154, 39.8846415 ],[ 116.3864842, 39.883693 ],[ 116.39255299999999, 39.8827445 ],[ 116.3986218, 39.881796 ],[ 116.40469060000001, 39.8808475 ],[ 116.4107594, 39.879899 ],[ 116.4168282, 39.8789505 ]
]

验证结果:
在这里插入图片描述

相关:https://blog.csdn.net/enternalstar/article/details/131085237


http://www.mrgr.cn/news/52143.html

相关文章:

  • LeetCode题练习与总结:去除重复字母--316
  • 如何从头训练大语言模型: A simple technical report
  • (三十二)实现一个基本的文件上传功能的Flask应用
  • CPU占用很高排查方案
  • STL-常用容器-string
  • 深度学习神经网络的7大分类
  • 特征融合篇 | YOLOv10 引入动态上采样模块 | 超过了其他上采样器
  • docker harbor
  • 引领企业数字化未来:物联网与微服务架构的深度融合之道
  • 个人用软件分析与测试笔记(待补充)
  • RTI DDS发送数据的模型
  • 基于SSM的网上拍卖平台
  • 利用ChatGPT优化毕业论文写作:高效、智能的文献管理指南
  • typora整合minio实现文件上传,全干货不多BB
  • YOLOv11改进策略【卷积层】| 引入注意力卷积模块RFAConv,关注感受野空间特征 助力yolov11精度提升
  • JsonElement 类
  • 【AI论文精读5】知识图谱与LLM结合的路线图-P3
  • AcWing 8. 二维费用的背包问题
  • STM32Cube高效开发教程<高级篇><FreeRTOS>(八)-----队列使用示例
  • C++ 算法学习——1.9 Kruskal算法