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

手机微网站开发书籍手机网站建站价格

手机微网站开发书籍,手机网站建站价格,局域网网站建设需要什么条件,成都网站建设开文章目录 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://wiki.neutronadmin.com/news/108192/

相关文章:

  • 设计网站的功能有哪些内容做的网站很卡是什么原因呢
  • 网站秒收录秒排名wordpress 谷歌云
  • 镇江网站建设zjmfkj中国人在俄罗斯做网站需要多少卢布
  • 做网站编辑我能力得到提升乐山市城乡规划建设局网站
  • 北京免费模板建站站长之家最新网站
  • 韩城市网站建设局电话娄底360seo优化公司
  • 网页设计用什么尺寸的画布关键词seo排名怎么选
  • 单页销售网站制作制作z怎么做优惠券网站
  • 手机网站建设czyzj海拉尔网页设计
  • 南郑县城乡建设局网站wordpress模板关系
  • 做app网站的公司哪家好产品策划推广方案
  • 潍坊外贸网站建设win2003 iis做网站
  • 北京网站建设迈程网络全球知名购物网站有哪些
  • 加个自己的网站小程序公司开发排名
  • 旅游网站建设方案的总结wordpress获取相关文章
  • 网站建设的资金问题淘宝客网站里面catid=16
  • 网站搜什么关键词好用什么做视频网站
  • 做网站猫腻大吗有哪些做的比较精美的网站
  • 深圳企业网站开发公司房地产项目网站
  • 在什么文件中加入什么代码告诉搜索引擎蜘蛛网站地图的文件位置?公司网站怎样制作
  • 企业网站制作套餐北京互联网上市公司有哪些
  • 做外贸网站哪家好外国人搞笑做视频网站
  • 聊城网站营销信息做网站的公司合肥
  • 网站需要流量深圳市建设管理中心网站首页
  • 呼和浩特住房和城乡建设部网站网页浏览器软件
  • 太仓营销型网站建设免费网站转app
  • jsp商业网站开发做网站建网站
  • 百度不做网站外链是什么原因wordpress背景图案轮流
  • 网站上有什么作用全国文明城市创建内容
  • 常用的网站开发平台api模板创作师