地理空间
关于在地图上二维或者一维坐标的操作
tiger_angel
这个作者很懒,什么都没留下…
展开
-
Java中使用JTS对空间几何计算(距离、点在面内、长度、面积、相交等)模拟的大概写法
一个完整的、一致的、基本的二维空间算法的实现,包括二元运算(例如touch和overlap)和空间分析方法(例如intersection和buffer)图中画红色斜线的区域-A.symDifference(B) 将返回一个包含 A 和 B 中各自不同的部分的几何体。relate可以被用来确定维度扩展的九交模型(DE-9IM),它可以完全的描述两个几何图形的关系。图中画红色斜线的区域----------------a区域b区域ab区域的总面积就是并集。图中画红色斜线的区域-ab区域-就是交集。原创 2024-04-17 20:53:27 · 2454 阅读 · 4 评论 -
Kalman Filter卡尔曼滤波 java实现
卡尔曼滤波就是-测量值与预测值之间取最优结果-得到最优结果卡尔曼滤波就是-上一次最优结果预测当前的值,同时使用观测者修正当前值,得到最优结果列子:再汽车行驶途中,如何确认定位自己所在位置?提供的数据:1.已知加速度信息,2里程表信息,3GPS信息。三种数据都存在误差说明:卡尔曼滤波结合已知信息,估计最优位置,本质是优化估计算法,例如估计人在下一帧的位置。说白了综合已知数据取最优值,阿波罗登月这哥们也用上了计算轨迹。状态向量:(位置和速递)位置速度-1 上一秒的位置。.........原创 2022-08-09 19:58:44 · 3047 阅读 · 0 评论 -
KalmanFilter卡尔曼滤波对GPS轨迹数据清洗(JAVA实现)
由于本人学艺未精,此文章只是作为给自己笔记使用,不知道是否准确。原创 2022-08-09 15:42:27 · 2540 阅读 · 3 评论 -
Java实现Google的S2算法工具类
WGS84坐标系 GCJ02坐标系 BD09坐标系的各种转换WGS84坐标系 GCJ02坐标系 BD09坐标系的各种转换 Google S2 经纬度 转 CellId 经纬度 转 cellToken CellId 转 经纬度 判断当前cellId的level * 获取任意形状内所有S2块 * 可以用于区域内目标检索,根据cellid建立索引,查询区域内cellid in (list)的区域 S2计算点距离 计算地球上某个点是否在矩形区域内 计算点s2是否在圆中心为s1半径为capHeight的圆形区域内原创 2022-05-26 20:04:45 · 1576 阅读 · 0 评论 -
Java实现GeoHash算法
各个对应的距离误差geohash长度 宽度width 高度height Lat位数 Lng位数 Lat误差 Lng误差 km误差 1 5,009.4km 4,992.6km 2 3 ±23 ±23 ±2500 2 1,252.3km 624.1km 5 5 ± 2.8 ±5.6 ±630 3 156.5km 156km 7 8 ± 0..原创 2022-05-26 17:30:07 · 1887 阅读 · 0 评论 -
java-判断点是否在面内
import java.util.*;public class ryamethod{ static class Point{ float x; float y; Point(){} Point(float x, float y){ this.x = x; this.y = y; } } public static boolean ray(Point p, List<Point> poly) { float .原创 2021-09-27 21:31:43 · 1225 阅读 · 0 评论 -
java-optics算法-聚类
package com.example.demo2.utils.optics;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class ClusterAnalysis { class ComparatorDp implements Comparator<DataPoint> { .原创 2021-08-11 15:48:07 · 303 阅读 · 0 评论 -
java-dtw和lcss航迹相似度
package com.example.demo2.utils.dtw_lcss;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@AllArgsConstructor@NoArgsConstructorpublic class Coordinate { private double x; private double y;}pack.原创 2021-08-11 15:46:53 · 665 阅读 · 1 评论 -
java-dbscan2自动聚类
package com.example.demo2.utils.dbscan2;import java.util.ArrayList;/** * Created by Jason on 2016/4/17. */public class Client { public static void main(String[] args) { //ArrayList<Point> points = Data.generateSinData(200); .原创 2021-08-11 15:45:33 · 146 阅读 · 0 评论 -
java-dbscan自动聚类算法
package com.example.demo2.utils.dbscan;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class DBScan { private static List<Point> pointsList = new ArrayList<Point>();//存储所有.原创 2021-08-11 15:44:01 · 388 阅读 · 0 评论 -
java-实现空间索引编码(GeoHash)
GeoHash特点1)GeoHash用一个字符串表示经度和纬度两个坐标,比如我现在所在位置的GeoHash值为 wx4sv61q;2)GeoHash标识的并不是一个点,而是一个区域,比如 wx4sv61q 对应的就是一个矩形区域;3)编码的前缀可以标识更大的区域,比如 wx4sv61 编码代表的区域要大于 wx4sv61q 代表的区域,但是 wx4sv61q 代表的区域一定在 wx4sv61 代表的区域内。 因此我们再去做距离检索的时候,只需要对GeoHash进行前缀匹配即可,具体...原创 2021-08-11 15:37:55 · 1484 阅读 · 0 评论 -
js-提取离散点边界(二维+三维)MATLAB Delaunay
先看三维效果图:二维算例,参考https://blog.csdn.net/qq_38991255/article/details/81223437借鉴该实例,修改后的三维边界提取代码见文后该算法的总体思路如下:1、利用 delaunay 函数,对所有数据点进行 Delaunay 三角剖分处理,delaunay 函数的返回值是一个 N * 3 的矩阵,其中 N 为剖分出的三角形个数,3 为每个三角形的三个端点的序号。2、根据 triangles 矩阵,提取出所有 delauna..原创 2021-07-12 12:37:07 · 960 阅读 · 1 评论 -
java-边界线查找-离散点最小(凸)包围边界查找
就是一堆散点,需要把最外侧点链接起来成为一个多边形最近,项目中有一需求,需要用一条闭合曲线将离散坐标点勾勒出来根据Darel Rex Finley的程序,其实现了最小凸多边形边界查找(关于凸多边形及凹多边形的定义见凸多边形及凹多边形)以下介绍java版的实现过程离散点首先建立离散点类:/** * <p> * <b>离散点</b> * <p> * <pre> * 离散点 * </pre> *...原创 2021-07-12 12:30:39 · 1875 阅读 · 0 评论 -
java计算不规则多边形的面积、中心、重心(计算地图围栏中心点)
最近项目用到:在不规则多边形的中心点加一个图标。(e.g: xx地区发生暴雪,暴雪区域是多边形,给多边形中心加一个暴雪的图标)之前的设计是,计算不规则多边形范围矩形bounds的中心点。这个比较简单,对于一些圆,矩形,凸多边形都比较适合。但是遇到凹多边形就会出现问题,比如一个月牙型的不规则多边形,bounds的中心点,就落到月牙外了。就有点难以接受了。经过讨论,决定将中心改为重心。计算不规则多边形的中心:public static final double MIN_LAT = -90;原创 2021-07-12 12:19:08 · 2903 阅读 · 0 评论 -
java地理坐标-聚类算法 实现DBScan聚类算法
最近有一个需求,在地图上,将客户按照距离进行聚合。比如,a客户到b客户5km,b客户到c客户5km,那么abc就可以聚合成一个集合。首先想到的就是找一个根据坐标来聚合的算法,这里找了一些后来选择了较为简单也符合要求的DBScan聚类算法。 它是一种基于密度的聚类算法,简单来说就是根据样本的紧密程度和数量将其分成多个集合。这个样本一般来说是一堆坐标点。参数可以为欧式距离和邻域密度阈值(就是每次寻找相邻的点的最低数量)。最终返回多个样本集合。java实现 坐标点:这个类如果测试的话,只用到里面的原创 2021-07-12 11:32:33 · 2280 阅读 · 0 评论 -
java密度聚类-密度最大处,点最密集处
package com.test.demo.gua; import java.util.ArrayList;import java.util.Collections;import java.util.List; public class K_meanTest { public static void main(String[] args){ List<Double&g...原创 2021-07-12 11:38:42 · 661 阅读 · 1 评论 -
java-地图通过两地之间的坐标算出两点之间的距离
package com.jiuding.relations.util;public class LocationUtils { private static double EARTH_RADIUS = 6378.137; private static double rad(double d) { return d * Math.PI / 180.0; ...原创 2019-10-14 16:53:53 · 414 阅读 · 0 评论