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

珠海工程建设信息网站百度app

珠海工程建设信息网站,百度app,wordpress锚文字,怎么开网店赚钱文章目录 1 原理公式2 代码实现2.1 JavaScript2.2 C2.3 Python2.4 MATLAB 1 原理公式 在地球上#xff0c;计算两点之间的直线距离通常使用地理坐标系#xff08;例如WGS84#xff09;。计算两地直线距离的公式是根据经纬度之间的大圆距离#xff08;Great Circle Distanc… 文章目录 1 原理公式2 代码实现2.1 JavaScript2.2 C2.3 Python2.4 MATLAB 1 原理公式 在地球上计算两点之间的直线距离通常使用地理坐标系例如WGS84。计算两地直线距离的公式是根据经纬度之间的大圆距离Great Circle Distance来计算的。该公式基于球面三角学常用的公式是 H a v e r s i n e Haversine Haversine 公式。 形式一 d l o n l o n 2 − l o n 1 d_{lon} lon_2 - lon_1 dlon​lon2​−lon1​ d l a t l a t 2 − l a t 1 d_{lat} lat_2 - lat_1 dlat​lat2​−lat1​ a s i n 2 ( d l a t / 2 ) c o s ( l a t 1 ) ∗ c o s ( l a t 2 ) ∗ s i n 2 ( d l o n / 2 ) a sin²(d_{lat}/2) cos(lat_1) * cos(lat_2) * sin²(d_{lon}/2) asin2(dlat​/2)cos(lat1​)∗cos(lat2​)∗sin2(dlon​/2) c 2 ∗ a t a n 2 ( a , ( 1 − a ) ) c 2 * atan^2(\sqrt{a}, \sqrt{(1-a)}) c2∗atan2(a ​,(1−a) ​) d R ∗ c d R * c dR∗c 形式二 d R ∗ a c o s ( s i n ( l o n 1 ) ∗ s i n ( l o n 2 ) c o s ( l o n 1 ) ∗ c o s ( l o n 2 ) ∗ c o s ( l a t 2 − l a t 1 ) ) d R*acos(sin(lon_1)*sin(lon_2) cos(lon_1)*cos(lon_2)*cos(lat_2-lat_1)) dR∗acos(sin(lon1​)∗sin(lon2​)cos(lon1​)∗cos(lon2​)∗cos(lat2​−lat1​)) 其中 R R R 是地球的半径约为6371千米。 请注意这个公式假设地球是一个完美的球形。实际上地球的形状更像一个椭球因此使用更精确的地理信息系统GIS软件或库如proj.4或GeographicLib可能会得到更准确的结果。 此外经纬度通常以度为单位但上述公式中的角度应被视为弧度。如果经纬度是以度数形式给出的需要将其转换为弧度。可以通过将度数乘以π/180并取整数部分得到弧度值。例如 30 ° 30° 30°转换为弧度为 π / 180 ∗ 30 π/180*30 π/180∗30。 2 代码实现 2.1 JavaScript function calculateDistance(lat1, lon1, lat2, lon2) {const R 6371; // 地球半径单位为千米const rad (angle) angle * Math.PI / 180; // 将角度转换为弧度const lat1Rad rad(lat1);const lon1Rad rad(lon1);const lat2Rad rad(lat2);const lon2Rad rad(lon2);const dLat lat2Rad - lat1Rad;const dLon lon2Rad - lon1Rad;const a Math.sin(dLat / 2) * Math.sin(dLat / 2) Math.cos(lat1Rad) * Math.cos(lat2Rad) *Math.sin(dLon / 2) * Math.sin(dLon / 2);const c 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));const distance R * c; // 返回单位为千米的距离return distance; }// 示例用法 const lat1 39.9087; // 北京的经纬度 const lon1 116.4074; const lat2 31.2304; // 上海的经纬度 const lon2 121.4737;const distance calculateDistance(lat1, lon1, lat2, lon2); console.log(distance); // 输出直线距离单位千米2.2 C #include cmath #include iostream// 计算两个经纬度之间的距离单位千米 double calculateDistance(double lat1, double lon1, double lat2, double lon2) {const double R 6371; // 地球半径单位为千米// 将经纬度转换为弧度double lat1Rad std::atan(std::tan(lat1 * (M_PI / 180)) * std::cos(lon1 * (M_PI / 180)));double lon1Rad lon1 * (M_PI / 180);double lat2Rad std::atan(std::tan(lat2 * (M_PI / 180)) * std::cos(lon2 * (M_PI / 180)));double lon2Rad lon2 * (M_PI / 180);// 计算两个经纬度之间的弧度差double dLat lat2Rad - lat1Rad;double dLon lon2Rad - lon1Rad;// 根据球面三角法公式计算距离double a std::sin(dLat / 2) * std::sin(dLat / 2) std::cos(lat1Rad) * std::cos(lat2Rad) *std::sin(dLon / 2) * std::sin(dLon / 2);double c 2 * std::atan2(std::sqrt(a), std::sqrt(1 - a));// 返回距离return R * c; }// 示例用法 int main() {double lat1 39.9087; // 北京的经纬度double lon1 116.4074;double lat2 31.2304; // 上海的经纬度double lon2 121.4737;double distance calculateDistance(lat1, lon1, lat2, lon2);std::cout 距离 distance 千米 std::endl;return 0; }请注意此代码使用了C标准库中的数学函数和常量。此外将经纬度转换为弧度的方法需要使用std::atan和std::tan函数。 2.3 Python import mathdef calculate_distance(lat1, lon1, lat2, lon2):R 6371 # 地球半径单位为千米rad lambda angle: angle * math.pi / 180 # 将角度转换为弧度lat1_rad rad(lat1)lon1_rad rad(lon1)lat2_rad rad(lat2)lon2_rad rad(lon2)dLat lat2_rad - lat1_raddLon lon2_rad - lon1_rada math.sin(dLat / 2) ** 2 math.cos(lat1_rad) * math.cos(lat2_rad) * math.sin(dLon / 2) ** 2c 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))distance R * c # 返回单位为千米的距离return distance# 示例用法 lat1 39.9087 # 北京的经纬度 lon1 116.4074 lat2 31.2304 # 上海的经纬度 lon2 121.4737distance calculate_distance(lat1, lon1, lat2, lon2) print(distance) # 输出直线距离单位千米请注意由于Python和JavaScript之间的一些语法差异需要使用math模块来进行数学计算。另外由于Python中没有lambda函数的功能因此需要使用普通的函数定义来代替。 2.4 MATLAB function distance calculateDistance(lat1, lon1, lat2, lon2)const R 6371; % 地球半径单位为千米lat1Rad rad(lat1);lon1Rad rad(lon1);lat2Rad rad(lat2);lon2Rad rad(lon2);dLat lat2Rad - lat1Rad;dLon lon2Rad - lon1Rad;a sin(dLat / 2) .^ 2 cos(lat1Rad) .* cos(lat2Rad) .* sin(dLon / 2) .^ 2;c 2 * atan2(sqrt(a), sqrt(1 - a));distance R * c; % 返回单位为千米的距离 end% 示例用法 lat1 39.9087; % 北京的经纬度 lon1 116.4074; lat2 31.2304; % 上海的经纬度 lon2 121.4737;distance calculateDistance(lat1, lon1, lat2, lon2); disp(distance); % 输出直线距离单位千米请注意MATLAB中的函数定义以function开头输入参数以逗号分隔输出结果使用变量名返回。此外MATLAB中用.*表示元素之间的相乘而^表示乘方。最后使用disp函数输出结果。
http://www.sadfv.cn/news/9352/

相关文章:

  • 公司做网站一般要多少钱北京的网页设计
  • 电子商务网站前台建设常用的技术新企业在哪里做网站好
  • 企业网站备案多少钱网站做竞价
  • 兰州网站建设优化制作公司怎样做微课网站
  • 益阳网站建设哪里好实际讲解做钓鱼网站
  • 网站群 推广京津冀协同发展心得体会2023
  • 网站策划预算怎么做如何通过网站开发客户
  • 地方网站类型怎么键卖东西的网站
  • 专业做家居的网站网站建设制作定制
  • 一个专门做ppt的网站溧水城乡建设局网站
  • 网站建设 开票中国建设工程造价管理协会网站
  • 网站推广公司兴田德润电话多少部门网站建设的意义
  • 有了域名 网站建设如何把做好的网站代码变成网页
  • 查企业网站网络教学平台
  • 太原网站建设怎么做域名网站备案
  • 描述网站开发的过程网页设计与制作属于什么专业
  • wordpress上传网站模板邯郸百度公司地址
  • 登录网站软件怎么做wordpress制作小工具
  • 外贸网站下载网站建设方案图
  • lol做视频那个网站好工作室logo设计免费生成
  • 做网站建设怎么赚钱聊城建设银行官方网站
  • 网站开发用什么系统比较好平面设计好找工作不
  • 网站建设师要求网站建设制作苏州
  • 黔西南建设厅网站服务器和网站的关系
  • 效果图网站有哪些好的做网站报价单
  • 哪个网站可以做名片深圳住房和建设局网站登录界面
  • 网络营销就是网站营销中国新闻社副总编辑级别
  • 汕头网站推广seo湖南新型网络营销方式
  • 公司网站建设需要注意哪些内容马鞍山哪里做网站
  • 京华建设科技有限公司网站广州app开发团队