项目上正好用到 。顺便贴给JE们。
public double distance(double n1, double e1, double n2, double e2)
{
double jl_jd = 102834.74258026089786013677476285//每经度单位米;
double jl_wd = 111712.69150641055729984301412873//每纬度单位米;
double b = Math.abs((e1 - e2) * jl_jd);
double a = Math.abs((n1 - n2) * jl_wd);
return Math.sqrt((a * a + b * b));
}
ALTER FUNCTION dbo.fnGetDistance
(
@LatBegin REAL
, @LngBegin REAL
, @LatEnd REAL
, @LngEnd REAL
)
RETURNS FLOAT
AS
BEGIN
DECLARE @Distance REAL
DECLARE @EARTH_RADIUS REAL
SET @EARTH_RADIUS = 6378.137
DECLARE @RadLatBegin REAL, @RadLatEnd REAL, @RadLatDiff REAL, @RadLngDiff REAL
SET @RadLatBegin = @LatBegin * PI() / 180.0
SET @RadLatEnd = @LatEnd * PI() / 180.0
SET @RadLatDiff = @RadLatBegin - @RadLatEnd
SET @RadLngDiff = @LngBegin * PI() / 180.0 - @LngEnd * PI() / 180.0
SET @Distance = 2 * ASIN(SQRT(POWER(Sin(@RadLatDiff / 2), 2) + COS(@RadLatBegin) * COS(@RadLatEnd) * POWER(SIN(@RadLngDiff/2),2)))
SET @Distance = @Distance * @EARTH_RADIUS
--SET @Distance = Round(@Distance * 10000) / 10000
RETURN @Distance
END
/**
* @param longitude 经度
* @param latitude纬度
* @param range 多少范围内的
**/
public Integer getWhereInfo(double longitude,double latitude,double range){
StringBuffer hql = new StringBuffer();
double jl_jd = 102834.74258026089786013677476285;
double jl_wd = 111712.69150641055729984301412873;
hql.append("from whereInfo w where sqrt(power((w.longitude-"+longitude+")*"+jl_jd+",2)+power((w.latitude-"+latitude+")*"+jl_wd+",2))<="+range);
return this.whereInfoDao.getwhereInfo(hql.toString());
}
分享到:
相关推荐
在二维平面上,我们可以使用余弦定理来计算两点间的欧氏距离,但在地球上,需要使用哈弗辛公式(Haversine Formula): 哈弗辛公式如下: \[ a = \sin^2\left(\frac{\Delta \phi}{2}\right) + \cos(\phi_1) \cdot \...
首先,地址转换成经纬度是计算距离的基础。地理坐标系统通常使用经度和纬度来定位地球上任意一点的位置。在Java中,我们可以使用第三方库如GeoTools或Google的Geocoding API来将地址解析为对应的经纬度坐标。这个...
二、Java代码实现计算AB两点的直线距离 在Java代码中,使用了 BigDecimal 类来保留小数点后两位的结果。通过 rad 函数计算弧度,使用 Math.asin 函数计算两点之间的距离。最后,使用 Map 集合返回计算结果。 三、...
首先,你需要创建一个具有GIS类型(如`POINT`)的列,然后可以使用`ST_Distance_Sphere`函数来计算距离。以下是一个例子: ```sql CREATE TABLE locations ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50...
综上所述,“PointAddress.zip_经纬度_经纬度点”可能是提供反向地理编码服务的数据资源,它可以帮助开发者根据经纬度快速获取到地理位置的行政归属信息,这对于需要处理大量位置数据的项目来说是非常有用的工具。...
通过这些SQL文件,用户可以进行各种地理数据分析,例如找出特定州的所有城市,查找位于特定经纬度范围内的城市,或者计算两个城市之间的距离等。 【地理信息系统(GIS)】在这一上下文中用于处理地理位置数据。...
GPS 模仿实现雷达扫描,使用UDP实现通信,...msql中创建名为gps的数据,并导入gps.sql(注意MySQL密码为123456,若不同请将Java代码的密码修改) 2.启动UDP服务器端: 3.访问主界面 4.启动测试客户端 /GPS/src/Server/
在IT中,这些坐标可以与GIS技术结合,用于地图绘制、路径规划、距离计算等功能。例如,它们可以用于在Google Maps或其他在线地图服务上标记出每个城市的位置。 4. **Excel文件格式**:文件名为“国家.xls”和“城市...
这个过程涉及一些复杂的数学计算,包括偏移量的计算和坐标平移。转换公式较为复杂,通常需要编程实现,涉及到浮点数运算和矩阵变换。 然后,从WGS84到CGCS2000的转换则需要用到投影变换。因为WGS84是地球椭球体上的...
7. **空间数据类型与GIS函数**:MySQL支持GIS扩展,如InnoDB存储引擎的SPATIAL数据类型和一系列GIS函数,用于处理几何对象,如计算两点之间的距离、判断是否在区域内等。 8. **编程语言与库**:实现上述功能通常会...
15. 地图工具:打开地图, 鼠标点击地图某位置获取经纬度坐标,根据经纬度计算两点距离 16. 打印测试:页面打印预览测试 17. 图片管理:对批量上传的图片统一管理 ,点击放大,可打开多个,自由切换,绚丽预览效果 18...
例如,你可以通过邮编查询对应的行政区域,或者根据经纬度计算两点之间的距离。对于开发地图应用、物流路线规划或进行人口统计分析的应用来说,这些数据是非常宝贵的。 在处理这两个SQL文件时,如果你的环境是MySQL...
3. **经纬度坐标**:经纬度是地球上位置的地理坐标系统,它通过两个数值(经度和纬度)确定地球表面的任意一点。在GIS和地图服务中,经纬度用于精确定位地点,如导航、位置追踪和地理围栏等功能。 4. **源码**:...
最新全国省市区行政划分表,树形结构,全国统一(城市编码、区域编码、邮政编码),及各市区行政坐标(经纬度),方便初始化地图中心及标注点,等级划分三级联动效果
【源码】mysql版本_spring3.0 系统模块 1. 组织管理:角色管理,分角色组和成员,有组权限和成员权限。 2. 系统用户:对各个基本的组会员增删改查,单发、群发邮件短信...地图选点获取经纬度坐标,根据俩经纬度计算距离
【源码】oracle版本_spring3.0 系统模块 1. 组织管理:角色管理,分角色组和成员,有组权限和成员权限。 2. 系统用户:对各个基本的组会员增删改查,单发、群发邮件...地图选点获取经纬度坐标,根据俩经纬度计算距离
下面将详细介绍如何使用Java进行IP查询,并探讨相关知识点。 首先,IP查询的基本原理是通过IP地址与地理位置之间的映射关系来获取信息。IP地址分为IPv4和IPv6两种类型,常见的IP查询服务如MaxMind、IPInfoDB等提供...