经纬度(坐标)相关的小工具(JAVA)
经纬度相关的小工具
- 计算坐标点是否在指定区域内
- 计算两点间的距离
计算坐标点是否在指定区域内
先导入计算依赖包
<dependency><groupId>com.vividsolutions</groupId><artifactId>jts</artifactId><version>1.13</version></dependency>
/*** 坐标是否在指定区域内* @param doubles 区域内的坐标集合* @param x 坐标的经度* @param y 坐标的纬度* @return 是否包含在区域内*/public static boolean polygonJudgment(List<Double[]> doubles, double x, double y){List<Coordinate> coordinates = new ArrayList<>();for (Double[] aDouble : doubles) {Coordinate coord = new Coordinate(aDouble[0],aDouble[1]);coordinates.add(coord);}Coordinate coord = new Coordinate(doubles.get(0)[0],doubles.get(0)[1]);coordinates.add(coord);GeometryFactory geometryFactory = new GeometryFactory();Coordinate[] array = coordinates.toArray(new Coordinate[1]);Polygon polygon = geometryFactory.createPolygon(array);Point point = geometryFactory.createPoint(new Coordinate(x,y));return polygon.contains(point);}/*** 坐标是否在指定区域内* @param doubles 区域内的坐标集合* @param x 坐标的经度* @param y 坐标的纬度* @return 是否包含在区域内*/public static boolean polygonJudgmentStr(List<String[]> doubles, double x, double y){List<Coordinate> coordinates = new ArrayList<>();for (String[] aDouble : doubles) {System.out.println(aDouble[0]);System.out.println(aDouble[1]);Coordinate coord = new Coordinate(Double.valueOf(aDouble[0]),Double.valueOf(aDouble[1]));coordinates.add(coord);}Coordinate coord = new Coordinate(Double.valueOf(doubles.get(0)[0]),Double.valueOf(doubles.get(0)[1]));coordinates.add(coord);GeometryFactory geometryFactory = new GeometryFactory();Coordinate[] array = coordinates.toArray(new Coordinate[1]);Polygon polygon = geometryFactory.createPolygon(array);Point point = geometryFactory.createPoint(new Coordinate(x,y));return polygon.contains(point);}/*** 坐标是否在指定区域内* @param doubles 区域内的坐标集合* @param x 坐标的经度* @param y 坐标的纬度* @return 是否包含在区域内*/public static boolean polygonJudgment(List<Double[]> doubles, String x, String y){Double x1 = new Double(x);Double y1 = new Double(y);return polygonJudgment(doubles,x1,y1);}/*** 坐标是否在指定区域内* @param doubles 区域内的坐标集合* @param x 坐标的经度* @param y 坐标的纬度* @return 是否包含在区域内*/public static boolean polygonJudgmentStr(List<String[]> doubles, String x, String y){Double x1 = new Double(x);Double y1 = new Double(y);return polygonJudgmentStr(doubles,x1,y1);}
计算两点间的距离
/**赤道半径**/private static final double EARTH_RADIUS = 6378137;/*** 转化为弧度(rad)*/private static double rad(double d) {return d * Math.PI / 180.0;}/*** 计算两点的距离* @param lng1 经度1* @param lat1 纬度1* @param lng2 经度2* @param lat2 纬度2* @return 返回距离(单位m)*/public static double calculationDistance(Double lng1, Double lat1, Double lng2, Double lat2) {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 * EARTH_RADIUS;return s;}/*** 计算两点的距离* @param lng1 经度1* @param lat1 纬度1* @param lng2 经度2* @param lat2 纬度2* @return 返回距离(单位m)*/public static double calculationDistance(String lng1, String lat1, Double lng2, Double lat2) {return calculationDistance(new Double(lng1),new Double(lat1),lng2,lat2);}/*** 计算两点的距离* @param lng1 经度1* @param lat1 纬度1* @param lng2 经度2* @param lat2 纬度2* @return 返回距离(单位m)*/public static double calculationDistance(Double lng1, Double lat1, String lng2, String lat2) {return calculationDistance(lng1,lat1,new Double(lng2),new Double(lat2));}/*** 计算两点的距离* @param lng1 经度1* @param lat1 纬度1* @param lng2 经度2* @param lat2 纬度2* @return 返回距离(单位m)*/public static double calculationDistance(String lng1, String lat1, String lng2, String lat2) {return calculationDistance(new Double(lng1),new Double(lat1),new Double(lng2),new Double(lat2));}
经纬度(坐标)相关的小工具(JAVA)相关推荐
- 百度地图墨卡托坐标转高德经纬度坐标(偏移小)
基本上是网上常见的方法进行坐标系的转换,但是误差很大.发现之所以误差大是在于百度的墨卡托坐标转百度的经纬度时误差太大,后面找到一个方法,误差较小,基本吻合. 参考:http://www.site-di ...
- java写测试小工具,java试题自我测试小工具
java试题自我测试小工具 北京石油化工学院 数理系 科 072 071616 刘红育 1 Java 语言综合设计实验报告 --GUI 编程设计题目: Java 试题自我测试小工具 班级: 学号: 姓 ...
- PHP 经纬度坐标相关计算方法
文章目录 1. 前言 2. 计算经纬度坐标间的距离 3. 根据经纬度坐标距离排序 4. 经纬度范围查询 1. 前言 PHP 全栈技术群 想要测试本文提供的几个功能函数,可以使用下面这个数据表结构及其数 ...
- 用C语言写的合并BOM和坐标文件的小工具
ALLEGRO画PCB的软件生成的坐标文件里面没有原件的参数数值,比如没有电容容量,电阻阻值.如下图: 焊接厂生产的时候希望我在里面加上原件参数.我这边反复看了ALLEGRO设置,都无法在同一个文件输 ...
- python实现一个简单的【图像中物体坐标】标注小工具
有时候需要对于数据集进行预处理,通过标注获取坐标信息,再进行后续的操作.使用python能够快速读取图片,并能够通过人工标注,记录一下每个点的横竖坐标,如下记录学习笔记. 参考链接:https://l ...
- Unity 坐标归零按钮小工具
从NGUI的源代码中抽取出来的, 可以直接用在没有NGUI的项目中 (要放在Editor文件夹下才有效) 源码如下: //--------------------------------------- ...
- 2020FME博客大赛——解放大脑 经纬度坐标自动重投影至常用投影坐标系
作者:崔欣 单位:中国石油天然气管道工程有限公司 摘要:非测绘专业以及学艺不精的测绘人员对经纬度.投影带.带号.假东.假北.比例因子.高斯克吕格3度分带投影.高斯克吕格6度分带投影.墨卡托投影.通用横 ...
- 经纬坐标(BLH)数据创建.kml文件小工具设计 Java版
技术背景 KML,是标记语言(Keyhole Markup Language)的缩写,最初由Keyhole公司开发,是一种基于XML 语法与格式的.用于描述和保存地理信息(如点.线.图像.多边形和模型 ...
- 根据经纬度坐标获得省市区县行政区划城市名称,自建数据库 java python php c# .net 均适用
文章目录 步骤一.下载省市区边界数据 步骤二.解析CSV文件导入数据库 步骤三.在程序中根据坐标解析获得城市 在LBS应用中,根据坐标来解析获得对应是哪个城市是一个很常见的功能,比如App里面通过手机 ...
- Java制作PDF转图片小工具
背景: 前几日一位朋友突然找我帮忙将PDF转换成图片,我仗义相助,建议他使用福昕阅读器,然而他说转换需要VIP会员,老贵了.我花了半天时间寻找免费会员,结果不出所料没有找到,我一怒之下,便决定亲自动手 ...
最新文章
- pytorch利用多个GPU并行计算多gpu
- 怎么用IDEA快速查看类图关系?
- q-LDPC实验进展
- 解决ARC下performselector-may-cause-a-leak-because-its-selector-is-unknown 警告
- mysql安装模块解释_MySQL的模块不能安装的解决方法_MySQL
- 信息学奥赛一本通(1023:Hello,World!的大小)
- CenOS6 nginx+pxe+tftpd+samba/nfs+dhcpd 无盘安装windows linux
- python学来干什么-学python出来到底能干嘛
- 怎么让模糊的数字变清楚_Re: 请问将模糊的图片中数字变的清晰方法是?多谢!!!...
- 把视频裁剪成图片Python
- 反转字符串中的元音字母Python解法
- 人人网冷落主业,押注智能硬件
- [C] 不撞南墙不回头——深度优先搜索
- 月是故乡明,每逢佳节倍思亲,近乡情更怯
- android数字转汉字大写字母,将数字金额转成汉字大写的
- Attempted to lock an already-locked dir异常解决方法
- python 黑魔法_Python “黑魔法” 之 Meta Classes
- 软通动力新员工转正考试-新员工转正考试题
- 新零售潮退后,其连锁管理观念依然坚挺
- 重力回弹(小球自由落体)
热门文章
- Unity 两个UI(坐标)之间的连线(直线)。如连线题
- 黑马程序员微信小程序开发前端教程_零基础玩转微信小程序P30 列式编程
- 一文读懂OSI七层网络模型与TCP-IP模型和对等网络通信协议
- 基于深度学习的SLAM综述:迈向空间机器智能时代
- Beyond Compare代码对比工具国内镜像下载
- 基于MaixPy的摄像头模块---MicroPython图像处理
- android usb 9008,【2018.1.4更新】X极Qualcomm HS-USB QDLoader 9008救砖的4种方法
- puttygen 可以将key文件转为pem文件for xshell 20211213
- ASCII三种进制对照表、二进制、字节
- (图论) Tarjan 算法