已知坐标点、长度、角度求延长线的坐标点丨技术开发分享录

已知坐标点、长度、角度求延长线的坐标点

{{ detail.nickname }}

转载 翻译 {{ formatTime(detail.create_time) }} 字数 {{ detail.content && detail.content.length }} 阅读 {{ detail.read_num }} {{ formatTag(v) }}

"```\n// 计算沿线坐标\nfunction calcAlongCoord(opts) {\n    var spd = opts.spd / 3600;\n    // 计算偏移坐标\n    var lengthen = spd * 600000; // 延长10分钟的距离\n    var d = lengthen / 6371004; // 6371004地球平均半径\n    var lng = (Math.PI / 180) * opts.lng;\n    var lat = (Math.PI / 180) * opts.lat;\n    var tc = (Math.PI / 180) * opts.ang;\n    var y = Math.asin(Math.sin(lat) * Math.cos(d) + Math.cos(lat) * Math.sin(d) * Math.cos(tc));\n    var dlng = Math.atan2(Math.sin(tc) * Math.sin(d) * Math.cos(lat), Math.cos(d) - Math.sin(lat) * Math.sin(y));\n    var x = lng + dlng;\n    var lon2 = (x * (180 / Math.PI) + 540 % 360 - 180).toFixed(5);\n    var lat2 = (y * (180 / Math.PI)).toFixed(5);\n    return {\n    \tlng: lon2,\n    \tlat: lat2\n    }\n}\n```\n\n调用(速度单位:km/h)\n\n```\ncalcAlongCoord({lng: 114.031089, lat: 30.356246, ang: 45, spd: 642}); // {lng: 114.82518, lat: 31.03428}\n```"
PS:写作不易,如要转裁,请标明转载出处。

如果此篇对您有帮助,可小额赞助,以兹鼓励!

猜你想看