android计算距离顶部的距离,(lua版)计算距离的逻辑是从Android的提供的接口(Location.distanceBetween)中拔来的,应该是最精确的方法了...

---coding by yuangu(lifulinghan@aol.com)

--用于计算2个pgs之间的距离

function computeDistance(lat1, lon1,

lat2, lon2)

-- Based on http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf

-- using the "Inverse Formula" (section 4)

local MAXITERS = 20;

-- Convert lat/long to radians

lat1 = math.rad(lat1); -- lat1 * math.pi / 180.0;

lat2 = math.rad(lat2); --lat2 * math.pi / 180.0;

lon1 = math.rad(lon1); --lon1 * math.pi / 180.0;

lon2 = math.rad(lon2); --lon2 * math.pi / 180.0;

local a = 6378137.0; -- WGS84 major axis

local b = 6356752.3142; -- WGS84 semi-major axis

local f = (a - b) / a;

local aSqMinusBSqOverBSq = (a * a - b * b) / (b * b);

local L = lon2 - lon1;

local A = 0.0;

local U1 = math.atan((1.0 - f) * math.tan(lat1));

local U2 = math.atan((1.0 - f) * math.tan(lat2));

local cosU1 = math.cos(U1);

local cosU2 = math.cos(U2);

local sinU1 = math.sin(U1);

local sinU2 = math.sin(U2);

local cosU1cosU2 = cosU1 * cosU2;

local sinU1sinU2 = sinU1 * sinU2;

local sigma = 0.0;

local deltaSigma = 0.0;

local cosSqAlpha = 0.0;

local cos2SM = 0.0;

local cosSigma = 0.0;

local sinSigma = 0.0;

local cosLambda = 0.0;

local sinLambda = 0.0;

local lambda = L; -- initial guess

for iter = 0, MAXITERS - 1 do

local lambdaOrig = lambda;

cosLambda = math.cos(lambda);

sinLambda = math.sin(lambda);

local t1 = cosU2 * sinLambda;

local t2 = cosU1 * sinU2 - sinU1 * cosU2 * cosLambda;

local sinSqSigma = t1 * t1 + t2 * t2;

sinSigma = math.sqrt(sinSqSigma);

cosSigma = sinU1sinU2 + cosU1cosU2 * cosLambda;

sigma = math.atan2(sinSigma, cosSigma);

local sinAlpha = 0.0

if (sinSigma ~= 0) then

sinAlpha = cosU1cosU2 * sinLambda / sinSigma

end

cosSqAlpha = 1.0 - sinAlpha * sinAlpha;

cos2SM = 0.0

if cosSqAlpha ~= 0 then

cos2SM = cosSigma - 2.0 * sinU1sinU2 / cosSqAlpha;

end

local uSquared = cosSqAlpha * aSqMinusBSqOverBSq;

A = 1 + (uSquared / 16384.0) *

(4096.0 + uSquared *

(-768 + uSquared * (320.0 - 175.0 * uSquared)));

local B = (uSquared / 1024.0) *

(256.0 + uSquared *

(-128.0 + uSquared * (74.0 - 47.0 * uSquared)));

local C = (f / 16.0) *

cosSqAlpha *

(4.0 + f * (4.0 - 3.0 * cosSqAlpha));

local cos2SMSq = cos2SM * cos2SM;

deltaSigma = B * sinSigma *

(cos2SM + (B / 4.0) *

(cosSigma * (-1.0 + 2.0 * cos2SMSq) -

(B / 6.0) * cos2SM *

(-3.0 + 4.0 * sinSigma * sinSigma) *

(-3.0 + 4.0 * cos2SMSq)));

lambda = L +

(1.0 - C) * f * sinAlpha *

(sigma + C * sinSigma *

(cos2SM + C * cosSigma *

(-1.0 + 2.0 * cos2SM * cos2SM)));

local delta = (lambda - lambdaOrig) / lambda;

if (math.abs(delta) < 1.0e-12) then

break;

end

end

return b * A * (sigma - deltaSigma);

end

--for test

print(computeDistance(34.8082342, 113.6125439, 34.8002478, 113.659779))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

codeforces C. Bits(数学题+或运算)

题意&#xff1a;给定一个区间&#xff0c;求区间中的一个数&#xff0c;这个数表示成二进制的时候&#xff0c;数字1的个数最多&#xff01; 如果有多个这样的数字&#xff0c;输出最小的那个&#xff01; 思路&#xff1a;对左区间的这个数lx的二进制 从右往左将0变成1&#…

密码与确认密码自动验证html,HTML确认密码

今天准备分享一个小知识点&#xff0c;就是确认登录界面输入户名&#xff1a; 输入密码&#xff1a; 确认密码&#xff1a; function validate() {var pw1 document.getElementById("pw1").value;var pw2 document.getElementById("pw2").value;if(pw1 …

实现单词大小写不敏感的正则表达式的匹配!

//实现单词大小写不敏感的正则表达式的匹配&#xff01; //方法1&#xff1a; tmp "java java JavaJAVA"; px Pattern.compile("java", Pattern.CASE_INSENSITIVE); mx px.matcher(tmp); System.out.println(mx.replaceAll("JAVA")); //方法二…

r语言 发送邮件html,r语言读取数据的方法

R 对于基于 SQL 语言的关系型数据库有良好的支持&#xff0c;这些数据库既有商业数据库 Oracle、Microsoft SQL Server、IBM DB2 等&#xff0c;也包含在 GNUGeneral Public License (GPL) 下发布的 MySQL 等开源数据库。RMySQL 包中提供了到 MySQL 数据库的接口&#xff1b;RO…

正则表达式之IP地址检验

String ipRegex "^(\\d|[1-9]\\d|1\\d*|2[0-4]\\d|25[0-5])(\\.\\1){3}$"; /* * \\d|[1-9]\\d|1\\d*|2[0-4]\\d|25[0-5] * 该段的数字只有一位的时候&#xff0c;两位数字的时候&#xff0c;三位数字的时候&#xff08;1开头的和2开头的&#xff09; * \\1 表示向前…

eclipse开发web应用程序步骤(图解)

*运行环境&#xff08;也就是服务器的选择&#xff09; 环境搭建好之后开始编写web程序&#xff01;然后右键->Run as -> Run on Server! 转载于:https://www.cnblogs.com/hujunzheng/p/4083560.html

android 测光模式,Android Camera1中的对焦与测光

Android Camera1开发系列连载&#xff1a;Android Camera1详解Android Camera1显示预览的四种方式对焦模式在使用特定的对焦模式的时候&#xff0c;必须确保相机支持该模式&#xff0c;相机支持的对焦模式可以通过Parameters#getFocusMode接口来获取&#xff1a;常用的对焦模式…

eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)

在eclipse中创建一个Web项目的时候&#xff0c;虽然有web.xml生成&#xff0c;但是再添加Servlet类文件的时候总是看不见web.xml的更新&#xff0c;所以异常的郁闷&#xff01;上网查了查&#xff0c;原来我们在创建Web项目的时候&#xff0c;会弹出一个对话框&#xff0c;“Dy…

android贝塞尔曲线多点,Canvas 贝塞尔曲线的多点波动

JavaScript语言&#xff1a;JaveScriptBabelCoffeeScript确定function Ball(x, y, radius) {this.x x;this.y y;this.radius radius;this.vx 20;this.vy 10;}Ball.prototype.draw function(ctx) {ctx.save();ctx.translate(this.x, this.y);ctx.fillStyle rgba(255, 255…

html5做一个展示页面,基于HTML5的WebGL实现json和echarts图表展现在同一个界面

突然有个想法&#xff0c;如果能把一些用到不同的知识点放到同一个界面上&#xff0c;并且放到一个盒子里&#xff0c;这样我如果要看什么东西就可以很直接显示出来&#xff0c;而且这个盒子一定要能打开。我用HT实现了我的想法&#xff0c;代码一百多行&#xff0c;这么少的代…

android 空白占位符,android textview空格占位符以及一些其他占位符汇总

普通的英文半角空格 no-break space (普通的英文半角空格但不换行) 中文全角空格 (一个中文宽度)   en空格 (半个中文宽度)   em空格 (一个中文宽度) 四分之一em空格 (四分之一中文宽度)相比平时的空格( )&#xff0c;nbsp拥有不间断(non-breaking)特性。即连续的nbs…

html图片平移,CSS3 按钮悬停时背景图片平移入场

JavaScript语言&#xff1a;JaveScriptBabelCoffeeScript确定$(".thumb-next").on(mouseleave, function() {$(".layout-p").text("Hover above, please.");});$(".thumb-next").on(mouseenter, function() {$(".layout-p")…

Netbeans 中创建数据连接池和数据源步骤(及解决无法ping通问题)

1.启动glassfish服务器&#xff0c; 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools&#xff1b; 3.new 一个Connectio Pools 4.对General Settings属性填写&#xff1b; 5.填写Datasource Classname&#xff1a;com.mysql.jdbc.jdbc2.optiona…

商品详情页html,天天生鲜商品详情页HTML+css

body{font-family: Microsoft YaHei;color:#666;font-size:12px;}/*顶部条状态*/.header_con{height:29px;background-color: #f7f7f7;border-bottom:1px solid #ddd;}.header{width:1200px;height:29px;margin:0 auto;1}.welcome{font:12px/29px Microsoft YaHei UI;float: le…

Netbeans不能正常启动glassfish或者部署失败不能运行的问题

错误信息&#xff1a;D:\临时文件\netbeans\WebTest\build\web中部署GlassFish Server 4, deploy, Connection refused: connect, falseD:\临时文件\netbeans\WebTest\nbproject\build-impl.xml:1048: 尚未部署该模块。有关详细信息, 请查看服务器日志。构建失败 (总时间: 7 秒…

js实现图片加载特效(从左到右,百叶窗,从中间到两边)

/*  网上百度的&#xff0c;感觉”从中间到两边“的效果写的不是很好&#xff0c;改了一下&#xff0c;感觉可以了&#xff01;*/<html><head><title></title><meta http-equiv"Content-Type" content"text/html; charsetUTF-8&qu…

给html动态添加css样式,JavaScript动态添加css样式和script标签

[动态添加css样式]window.οnlοadfunction(){var headdocument.getElementsByTagName(head)[0];     //获取到head元素var linkdocument.createElement(link);             //创建link元素节点&#xff0c;也就是link标签link.rel"stylesheet";  …

java中Cookie中文字符乱码问题

如果Cookie中的Value 中有中文字符出现&#xff0c;在加入Cookie的时候&#xff0c;会出现下面的错误&#xff1a;  java.lang.IllegalArgumentException: Control character in cookie value or attribute.当我们设定Cookie的Value的值得时候&#xff1a;  cookie.setValue…

湖北省仙桃市2021年高考成绩查询,2021年4月湖北仙桃市自考成绩查询时间和有效期是多久?...

2021年4月湖北仙桃市自考成绩查询时间和有效期是多久?根据《2021年4月湖北自考成绩公布及复查事项通知》知悉&#xff0c;2021年4月湖北仙桃市自考成绩查询时间为5月12日起&#xff0c;官方成绩查询入口已开通。一、2021年4月湖北仙桃市自考成绩查询入口及流程2021年4月湖北仙…

html5 手机拍视频滤镜,用canvas实现图片滤镜效果附演示_html5教程技巧

这是一个很有意思的特效&#xff0c;模拟摄像机拍摄电视屏幕画面时出现点状颗粒的效果。颗粒的大小通过变换矩阵实现&#xff0c;可以任意调节&#xff0c;有兴趣研究的朋友可以尝试更多的效果&#xff0c;代码没有经过优化&#xff0c;只是一个粗糙的Demo&#xff0c;大家可以…