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.pswp.cn/news/531584.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531584.shtml
英文地址,請注明出處:http://en.pswp.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;大家可以…