oracle 經緯度算距離,根據經緯度訣別用java和Oracle存儲過程計算兩點距離

根據經緯度分別用java和Oracle存儲過程計算兩點距離

create or replace procedure SP_GET_DISTANCE

(cx in number,cy in number,sx in number, sy in number,distance out varchar2)

is

d number;

x number;

y number;

r number;

pi number;

begin

--開始計算

r:=6371229;--地球半徑

pi:=3.14159265358979323;--圓周率

x:=(sx-cx)*pi*r*cos((sy+cy)/2*pi/180)/180;

y:=(sy-cy)*pi*r/180;

d:=SQRT(power(x,2)+power(y,2));

distance:=to_char(d,9999999999999.99);

end SP_GET_DISTANCE;

package com.wpn.web.util;

public class Distance {

private final static double PI = 3.14159265358979323;// 圓周率

private final static double R = 6371229; // 地球的半徑

private Distance() {

}

/**

* 緯度lat 經度lon

* @param longt1

* @param lat1

* @param longt2

* @param lat2

* @return

*/

public static double getDistance(double longt1, double lat1, double longt2, double lat2) {

double x, y, distance;

x = (longt2 - longt1) * PI * R * Math.cos(((lat1 + lat2) / 2) * PI / 180) / 180;

y = (lat2 - lat1) * PI * R / 180;

distance = Math.hypot(x, y);

return distance;

}

/*public enum GaussSphere {

Beijing54, Xian80, WGS84,

}

private static double Rad(double d) {

return d * Math.PI / 180.0;

}

public static double DistanceOfTwoPoints(double lng1, double lat1, double lng2, double lat2, GaussSphere gs) {

double radLat1 = Rad(lat1);

double radLat2 = Rad(lat2);

double a = radLat1 - radLat2;

double b = Rad(lng1) - Rad(lng2);

double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));

s = s * (gs == GaussSphere.WGS84 ? 6378137.0 : (gs == GaussSphere.Xian80 ? 6378140.0 : 6378245.0));

s = Math.round(s * 10000) / 10000;

return s;

}*/

public static void main(String[] arg){

double longt1 = 116.515502;

double lat1 = 39.863898;

double longt2 = 116.304187;

double lat2 = 40.052584;

System.out.println(getDistance(longt1,lat1,longt2,lat2));

}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538319.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538319.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538319.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kafka集群安裝--測試--關閉

一、前提 1、kafka安裝包下載:http://kafka.apache.org/downloads 2、jdk已安裝 3、scala已安裝 4、zookeeper集群已安裝并運行二、步驟 1、對kafka_2.9.2-0.8.1.tgz進行解壓縮:tar -zxvf kafka_2.9.2-0.8.1.tgz。2、對kafka目錄進行改名:mv …

Java中的工廠模式

設計模式遵循原則 開閉原則:對擴展開放,對修改關閉里氏代換原則:只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被覆用。而衍生類也能夠在基類的基礎上增加新的行為依賴倒轉原則:開閉…

python的底層實現_Python底層封裝實現方法詳解

這篇文章主要介紹了Python底層封裝實現方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下事實上,python封裝特性的實現純屬“投機取巧”,之所以類對象無法直接調用私有方法和屬性&a…

php 附近的距離,PHP查詢附近的人及其距離的實現方法_PHP

本文實例講述了PHP查詢附近的人及其距離的實現方法。分享給大家供大家參考,具體如下:array(lat>$lat $dlat,lng>$lng-$dlng),right-top>array(lat>$lat $dlat, lng>$lng $dlng),left-bottom>array(lat>$lat - $dlat, lng>$ln…

統計指定目錄下的視頻時長

package time;import java.io.File;import org.apache.log4j.Logger;import it.sauronsoftware.jave.Encoder; import it.sauronsoftware.jave.EncoderException; import it.sauronsoftware.jave.MultimediaInfo;public class Test2 {/* 支持的后綴 */private static final Str…

怎么在cmd中運行python腳本_cmd中運行python腳本智能使用流程

(此時的ScaleMode自動變Vbuser)更有趣的是用來計算字串高、寬的TextHeight/TextWidth也變成以座標0-100的方式來表現了On Error Resume NextSet outstreemWscript.stdoutIf (LCase(Right(Wscript.fullname,11))"Wscript.exe") ThenSet objShellWscript.CreateObject(…

世界時鐘 軟件_Clocker for Mac(世界時鐘軟件)

Clocker for Mac是一款Mac平臺上免費的世界時鐘工具,方便我們查看世界各地的時間,它是開源免費的,完全沒有廣告。包括數百個時區,支持24小時制或AM / PM,macz提供Clocker mac免費版,歡迎前來下載&#xff0…

Mac 設置 NDK

2019獨角獸企業重金招聘Python工程師標準>>> 1、首先查看我自己的android studio ,找到以下路徑 如上圖,打開一個 AS 項目,file - project structure 這是我的3 個路徑 Ndk /Users/dhbm/Library/Android/sdk/ndk-bundle Sdk /User…

Workbench has not been created yet

原因是:加載的插件變更后需要清理 在啟動參數最后加入 -clean

oracle必須聲明標識符函數,引用變量時需要必須聲明標識符

SQL> declare2 pname emp.ename%type;3 psal emp.sal%type;4 begin5 select enmae,sal into pname,psal from emp where empno7782;6 dbms_output.put_line(pname||xsis||psal);7 end;8 /pname emp.ename%type;*第 2 行出現錯誤:ORA-06550: 第 2 行, 第 7 列:PLS-002…

四參數擬合曲線_每周放送|曲線擬合

曲線擬合No.1什么是曲線擬合所謂的曲線擬合,就是使用某一個模型(或者稱為方程式),將一系列的數據擬成平滑的曲線,以便觀察兩組數據之間的內在聯系,了解數據之間的變化趨勢。No.2曲線擬合的應用在數據分析時,我們有時需…

Spark集群運行jar包程序里的print日志哪里去了?

默認情況下,是輸出到stdout里的。 方法一: 進入work所在機器的spark安裝目錄下的work目錄,里面有日志輸出。 方法二: 進入spark web ui 里 點擊stdout就可以查看,如果沒有可能在其他work上。

hibernate oracle clob 注解,Hibernate3.X實現基于CLOB字段類型的注解方式:

一:Hibernate3.X實現基于CLOB字段類型的注解方式的例子:下面直接上代碼:二:UserInfo.javapackage cn.gov.csrc.cms.model;import javax.persistence.Basic;import javax.persistence.Column;import javax.persistence.Entity;impo…

Flutter下拉刷新,上拉加載更多數據

下拉刷新 很簡單,直接使用 RefreshIndicator 組件, onRefresh 為重新獲取數據的方法 Widget build(BuildContext context) {return Scaffold(body: Container(padding: EdgeInsets.all(2.0),child: RefreshIndicator(onRefresh: _refresh,backgroundColo…

qt 批量裁剪圖片_照片變素描,不用下載App,好用的在線圖片處理及圖庫

我們要處理圖片時,無論是在電腦還是手機上,往往都需要下載軟件,但如果你只是臨時用一下的話,下載軟件難免顯得工程有點浩大。下面就推薦幾個圖片處理網站,打開網頁就能用。1、圖片處理 funny。pho。to這個網站提供了很…

Intellij IDEA15:建立Scala的Maven項目

原文鏈接:http://blog.csdn.net/silentwolfyh/article/details/51172369 ------------------------------------------------------------------------------------ 在創建Scala的Maven之前要安裝JavaJDK 、 Scala 的JDK 、 Maven配置,請參考下面 Int…

linux臨時啟動進程命令,Linux常用命令(一)服務控制及優化啟動過程

Linux常用命令(一)服務控制及優化啟動過程一、Red hat系統開機引導過程1、linux操作系統的引導過程一般包括以下幾個階段:開機自檢、MBR引導、GRUB菜單、加載Linux內核、init進程初始化。2、Linux系統中的進程使用數字進行標記,每個進程的身份標記號稱為…

linux 解決端口占用

2019獨角獸企業重金招聘Python工程師標準>>> 1. netstat -apn|grep 9876 2.kill -9 端口號 --------- java 在linux后臺運行的命令 ------------- nohup java -jar demo-shiro-0.0.1-SNAPSHOT.jar >temp.txt & 轉載于:https://my.oschina.net/likaixuan0/…

天鋒w2019_什么樣的商務手機才顯得高端?這款天鋒W2019可能適合你

不同的人群有不同的需求,不同于普通的手機用戶,商務人士所需的手機需要能體現商務人士的身價。商務人士需要帶著手機出入各種商務場所,進行會議、談判、簽約等商務事宜,一款普通的手機無法體現商務人士的高端和深度。同時商務人士…

IDEA中 @override報錯的解決方法

原文路徑:http://www.cnblogs.com/printN/p/6870036.html ------------------------------------ 今天用IDEA導入一個java工程時,碰上一個問題,代碼中所有override處標紅,并提示:override不支持對接口的實現。 網上百…