`
gxh04007101
  • 浏览: 15607 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

根据经纬度分别用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));
	}
}



(SELECT REGEXP_SUBSTR('01;2;3','[^;]+',1,ROWNUM) FROM DUAL
CONNECT BY ROWNUM<=LENGTH('01;2;3')-LENGTH(REPLACE('01;2;3',';'))+1)
分享到:
评论

相关推荐

    java根据两点经纬度计算距离

    在Java编程中,根据两点的经纬度来计算距离是一项常见的任务,特别是在地理信息系统(GIS)或者定位服务相关的应用中。这个任务通常涉及到地球表面的距离计算,因为经纬度是地球坐标系统的一部分。以下是一些相关的...

    计算两个经纬度之间的距离Java

    在IT领域,尤其是在地理信息系统(GIS)和移动应用开发中,计算两个地理位置点之间的距离是一项常见的任务。本示例着重讲解如何使用Java编程语言来实现这个功能,特别是针对地图测距算法的应用。"计算两个经纬度之间...

    sqlserver根据经纬度计算两点间距离

    sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离

    根据经纬度计算两点之间的距离

    根据经纬度计算两点之间的距离,传输过来坐标点,直接计算两点之间的距离

    通过两点经纬度,计算他们之间的距离 - JAVA

    在JAVA编程中,计算两点经纬度之间的距离是一个常见的地理计算任务,主要应用于地图应用、导航系统或者地理位置服务等。这个任务通常使用哈弗辛公式(Haversine formula)来实现,该公式基于球面三角学,可以计算...

    java实现 根据经纬度算距离

    通过经纬度算出两点间的距离,经过仔细对比及参照,相对精确度较高,请大家放心使用

    经纬度计算距离、方位角等java源码

    在IT行业中,尤其是在地理信息系统(GIS)或者地图应用开发中,计算地球上两点之间的距离和方位角是一项基础且重要的任务。本篇文章将详细讲解如何利用Java编程语言实现这一功能,主要基于给定的"经纬度计算"标签...

    WGS84坐标下根据经纬度计算两点之间的距离

    - `p1` 和 `p2` 分别表示两个点的经纬度坐标,其中 `x` 表示经度,`y` 表示纬度。 - `Ri` 定义了地球的平均半径,这里取值为6371千米,即6,371,000米。 2. **核心算法**: - 使用`Math.acos()`函数来计算余弦值...

    根据经纬度坐标计算实际两点距离

    3. **计算距离**:利用Haversine公式计算两点之间的球面距离。该公式考虑了地球表面的曲率,并通过求解球面三角形的一个边长来得到两点之间的距离。 \[ s = 2 \times asin(\sqrt{sin^2(\frac{a}{2}) + cos...

    批量根据经纬度计算距离

    在IT行业中,我们经常...综上所述,这个“批量根据经纬度计算距离”的项目是地理信息处理的一个实用案例,涵盖了地理坐标系统、坐标转换、距离计算和批量处理等多个技术点,对于理解和处理地理空间数据具有重要意义。

    Java计算两个经纬度点之间距离算法

    Java计算两个经纬度点之间距离(以米为单位)算法, 纯Java代码, 可供参考。 在具体项目中使用过。

    java-业务需求需要根据经纬度计算面积,整理了一下根据经纬度计算面积,根据openlayers借鉴改写,亲测可用

    java-业务需求需要根据经纬度计算面积,整理了一下根据经纬度计算面积,根据openlayers借鉴改写,亲测可用!

    电子-根据两点经纬度计算距离.doc

    "电子-根据两点经纬度计算距离.doc" 根据两点经纬度计算距离是基于地球坐标系的概念。地球坐标系是由经度和纬度组成的。经度是指从本初子午线到某点的水平角距离,纬度是指某点与地球赤道面的夹角。 在地球坐标系...

    根据经纬度距离和方位角计算新的经纬度

    根据经纬度距离和方位角计算新的经纬度,计算经纬度两点间距离

    经纬度计算距离,经纬度计算距离公式,matlab

    在IT领域,尤其是在地理信息系统(GIS)和导航应用中,经纬度计算距离是一个常见的需求。经纬度是地球坐标系统中的两个参数,分别表示地球表面某点的经度和纬度,用于精确定位地理位置。本篇文章将深入探讨如何利用...

    经纬度计算距离经纬度计算距离工具

    在“经纬度计算距离经纬度计算距离工具(gpsCal)下载 2.0绿色版_ - pc6下载站.url”这个链接中,我们可以找到更详细的软件下载和使用信息。 “c2g.pl”、“g2c.pl”和“upd.pl”可能是Perl脚本,分别用于坐标转换...

    计算两经纬度之间的距离存储过程_mysql

    ### 计算两经纬度之间的距离存储过程_mysql 在MySQL中,经常需要处理与地理位置相关的数据,例如在地图应用、物流系统或者任何需要基于位置的服务(LBS)的应用程序中。其中一项常见的需求就是计算两个地理位置之间...

    两点经纬度计算距离.xlsx

    已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。

    java计算两个经纬度之间的距离

    在Java编程中,计算两个经纬度之间的距离通常涉及到地理坐标系统的知识,主要使用Haversine公式或者Spherical Law of Cosines。Haversine公式适用于球面几何,它能计算地球上两点之间的大圆距离,而Spherical Law of...

    计算两个经纬度距离.java

    计算两个经纬度距离.java

Global site tag (gtag.js) - Google Analytics