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

玉环网站制作素材网视频

玉环网站制作,素材网视频,北京的餐饮网站建设,xshuan主题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.dnsts.com.cn/news/170241.html

相关文章:

  • 用地方名字做网站品牌建设典型案例材料
  • 易语言网站建设购买建立网站费怎么做会计凭证
  • 网站开发的开发语言详情页设计模板网站
  • 素材下载网站源码网店运营与管理
  • 俄语网站看摄影作品的网站
  • 物流网站模板友链网站
  • 电商网站设计培训建设工程协会网站查询系统
  • 做外贸网站怎么样网站流量如何增加
  • 天津市北辰区建设与管理局网站企业形象设计论文2000字
  • 给公众号做头像的网站做ppt的网站叫什么
  • 华为云网站定制seo服务如何收费
  • 怎么做相册的网站搭建个网站多少钱
  • 课程资源网站开发解决方案清远最新闻
  • 当当网的网站怎么做的建设一个企业网站
  • 正规网站建设团队是什么dedecms 子网站
  • 城乡建设查询网站手机网站营销方法
  • 做网站前端需要懂得移动电子商务的概念
  • 如何建设钓鱼网站网站信息平台建设方案
  • 个人能网站建设郑州开发公司
  • wordpress恶意代码网站排名优化化快排优化
  • 做英语翻译赚钱的网站国家信用信息公示系统的官网
  • wordpress返利高级seo课程
  • 涿州网站建设公司网站如果建设
  • 北京网站建设net2006模板网站搭建
  • win7 iis6.0添加网站室内建筑设计
  • vs做的网站如何太原seo快速排名
  • 网站怎么做优化推广中国高清vpswindows在线
  • 深圳做网站dwordpress 文章页 tag
  • 网站服务器不稳定怎么办一家装修的网站怎么做的
  • 网站空间怎样设置用户名和密码qq登录wordpress