[转]JAVA 根据经纬度算出附近的正方形的四个角的经纬度
项目开发中csv文件转化为geojson文件中,涉及到路测图的打点生成,打点是由一个个正方形组成,而正方形是由四个点组成的,这四个点根据经纬度和范围生成,实现代码参考网上:
/**
*
* @param longitude 经度
* @param latitude 纬度
* @param distance 范围(米)
* @return
*/
public static Map<String, double[]> returnLLSquarePoint(double longitude, double latitude, double distance) {
Map<String, double[]> squareMap = new HashMap<String, double[]>();
// 计算经度弧度,从弧度转换为角度
double dLongitude = 2 * (Math.asin(Math.sin(distance
/ (2 * 6378137))
/ Math.cos(Math.toRadians(latitude))));
dLongitude = Math.toDegrees(dLongitude);
// 计算纬度角度
double dLatitude = distance / 6378137;
dLatitude = Math.toDegrees(dLatitude);
// 正方形
double[] leftTopPoint = { latitude + dLatitude, longitude - dLongitude };
double[] rightTopPoint = { latitude + dLatitude, longitude + dLongitude };
double[] leftBottomPoint = { latitude - dLatitude,
longitude - dLongitude };
double[] rightBottomPoint = { latitude - dLatitude,
longitude + dLongitude };
squareMap.put("leftTopPoint", leftTopPoint);
squareMap.put("rightTopPoint", rightTopPoint);
squareMap.put("leftBottomPoint", leftBottomPoint);
squareMap.put("rightBottomPoint", rightBottomPoint);
System.out.println("leftTop:"+leftTopPoint[0]+"======"+leftTopPoint[1]);
System.out.println("rightTop:"+rightTopPoint[0]+"======"+rightTopPoint[1]);
System.out.println("leftBottom:"+leftBottomPoint[0]+"======"+leftBottomPoint[1]);
System.out.println("rightBottom:"+rightBottomPoint[0]+"======"+rightBottomPoint[1]);
return squareMap;
}
[转]JAVA 根据经纬度算出附近的正方形的四个角的经纬度的更多相关文章
- JAVA 根据经纬度算出附近的正方形的四个角的经纬度
/** * * @param longitude 经度 * @param latitude 纬度 * @param distance 范围(米) * @return */ public static ...
- Java程序设计之算出一年第多少天
可以直接拷贝运行. package year; import java.util.Scanner; public class year { public static void main(String ...
- Java根据年份算出所属的生肖。
一个小程序~ public String getYear(Integer year){ if(year<1900){ return "未知"; } Integer start ...
- Sql根据经纬度算出距离
SELECT ISNULL((2 * 6378.137 * ASIN(SQRT(POWER(SIN((117.223372- ISNULL(Latitude,0) )*PI()/360),2)+CO ...
- sql 根据两点经纬度算出两点之间距离
select (sqrt( ( ((121.544685-longitude)*PI()*12656*cos(((31.134857+latitude)/2)*PI()/180)/180) * ((1 ...
- JS根据一个经纬度及距离角度,算出另外一个经纬度
var mapNumberUtil = {}; /** * 根据一个经纬度及距离角度,算出另外一个经纬度 * @param {*} lng 经度 113.3960698 * @param {*} la ...
- CardUtil算出当前身份证持有者的性别和年龄
import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util ...
- Day_10【常用API】扩展案例1_利用人出生日期到当前日期所经过的毫秒值计算出这个人活了多少天
分析以下需求,并用代码实现: 1.从键盘录入一个日期字符串,格式为 xxxx-xx-xx,代表该人的出生日期 2.利用人出生日期到当前日期所经过的毫秒值计算出这个人活了多少天 package com. ...
- 一次 Oracle 算出运算溢出问题 排查解决 (并非除数为零!)
前段时间 出现过这个问题,: 表中有一列为number类型 rec_recordlength (两个时间的间隔长度/秒) 部分数据 统计这个字段就会出现 "算出运算溢出" 错误,很 ...
随机推荐
- C#异步(下)
上篇主要分析了async\await之前的一些异步模式,今天说异步的主要是指C#5的async\await异步.在此为了方便的表述,我们称async\await之前的异步为“旧异步”,async\aw ...
- QT:创建一个widget,包含源文件,头文件,以及ui文件
1. 安装QT 2. 在QT Welcome画面,点击 New Project 3. 选择Application--Qt Widgets Application 4. 按提示创建即可 文件目录如下: ...
- 详解Linux下swig 3.0.12的手动安装过程
详解Linux下swig 3.0.12的手动安装过程 首先 从http://www.linuxfromscratch.org/blfs/view/cvs/general/swig.html上下载swi ...
- Android 音视频深入 十九 使用ijkplayer做个视频播放器(附源码下载)
项目地址https://github.com/979451341/Myijkplayer 前段时候我觉得FFmpeg做个视频播放器好难,虽然播放上没问题,但暂停还有通过拖动进度条来设置播放进度,这些都 ...
- CentOS 7安装部署ELK 6.2.4-SUCCESS
一.ELK介绍 ELK是三款开源软件的缩写,即:ElasticSearch + Logstash + Kibana.这三个工具组合形成了一套实用.易用的监控架构,可抓取系统日志.apache日志.ng ...
- 自动化扫描src漏洞
首先介绍一下常见的漏洞类型: 漏洞自动扫描思路: 常见的一些github上常用的漏洞采集工具,我们可以利用一款工具进行接口调用直接进行利用 自动化工具的雏形:
- asp.net IHttpModule浅析
在asp.net程序中,我们除了使用系统自带的HttpModule模块,还可以自己定义一些自己的HttpModule接口模块.一个asp.net程序可以接收多个HttpModule模块. 众所周知,a ...
- 微信浏览器安卓手机video浮在最上层问题
微信浏览器安卓手机video浮在最上层问题 //x5-video-player-type="h5" x5-video-player-fullscreen="true&qu ...
- SSE 向量乘矩阵
struct Vector4 { float x, y, z, w; }; struct Matrix { ][]; }; void SSE_VectorMultiplyMatrix(const Ve ...
- js事件、事件流以及target、currentTarget、this那些事
你是如此简单我却将你给遗忘 前面面试被问到js的事件机制 target.currentTarget.碰巧今天有时间来拔一拔,顺便记下.