Spatial4j简介

示例代码库
Spatial4j是一个通用的空间/地理空间(spatial/geospatial) ASL 授权的开源Java库。它的核心能力有三个方面:提供常见的形状,可以在欧几里得和测地线(球体)表面世界模型,提供距离计算和其他数学、读和写等格式的形状 WKT 和GeoJSON 。Spatial4j是Eclipse基金会 LocationTech 行业工作组的一个项目。

使用说明

shape几何结构说明
shape几何创建
平面坐标系与空间坐标系下面的几何关系
Spatial距离计算
Spatial WKT格式解析
Spatial GeoJSON格式解析

特性

具有地理空间感知的形状类(*)

  • 形状:点Point,矩形Rectangle,圆Circle,多边形Polygon(通过JTS)
  • 几何运算:不相交disjoint,包含contains,内部within,相交intersects,不支持touch
  • 边界计算
  • 面积计算

距离计算支持三个公式(球面计算公式):

  • Law of Cosines(余弦定理)
  • Haversine默认使用球面模型
  • Vincenty椭球模型

其他特性

Shapes支持的输入/输出格式:

  • WKT
  • GeoJSON
  • Polyshape
  • Jackson-databdind

其它格式支持,请参考FORMATS.md

代码类库地址

spatial4j GitHub

Maven坐标

<dependencies><dependency><groupId>org.locationtech.spatial4j</groupId><artifactId>spatial4j</artifactId><version>0.8</version></dependency><dependency><groupId>org.noggit</groupId><artifactId>noggit</artifactId><version>0.8</version><optional>true</optional></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.10.8</version><optional>true</optional></dependency><dependency><groupId>org.locationtech.jts</groupId><artifactId>jts-core</artifactId><version>1.18.1</version><optional>true</optional></dependency>
</dependencies>

代码例子

public class Demo {public static void main(String[] args) {SpatialContext ctx = SpatialContext.GEO;ShapeFactory shapeFactory = ctx.getShapeFactory();Circle circle = shapeFactory.circle(new PointImpl(0.0,0.0,ctx),1);JtsSpatialContextFactory jtsCtxFactory = new JtsSpatialContextFactory();JtsSpatialContext jtsCtx = jtsCtxFactory.newSpatialContext();GeometryFactory geometryFactory = jtsCtxFactory.getGeometryFactory();Point point = geometryFactory.createPoint();//emptyShape shape = jtsCtx.getShapeFactory().makeShapeFromGeometry(point); }
}

Spatial4j简介相关推荐

  1. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  2. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  3. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  4. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  5. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  6. 通俗易懂的Go协程的引入及GMP模型简介

    本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...

  7. Linux 交叉编译简介

    Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...

  8. TVM Operator Inventory (TOPI)简介

    TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍.TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度.TOPI 如何在 TVM 中,编 ...

  9. 计算机视觉系列最新论文(附简介)

    计算机视觉系列最新论文(附简介) 目标检测 1. 综述:深度域适应目标检测标题:Deep Domain Adaptive Object Detection: a Survey作者:Wanyi Li, ...

  10. 2021年大数据ELK(二十三):Kibana简介

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. Kibana简介 通过上面的这张图就可以看到,Kibana可以用来展示丰富的图表. ...

最新文章

  1. html li 右跟下有倒影,HTML5 canvas实现的下雨夜湖面星空倒影动画特效
  2. IOS之使用纯代码push ViewController
  3. 成为Java流大师–第1部分:创建流
  4. URAL 1404. Easy to Hack! (模拟)
  5. java foxpro_java解析FoxPro DBF数据文件
  6. 当一名程序员喝醉之后......
  7. Centos7 安装 Kubernetes dashboard (安装篇)
  8. WindowManager添加一个悬浮的Window
  9. ABP之Javascript生成
  10. “牙医”教你用450行Go代码自制编程语言 | Gopher Daily (2021.01.15) ʕ◔ϖ◔ʔ
  11. hp/博科光纤交换机配置小记
  12. 网上图书商城项目学习笔记-022易宝支付
  13. react-native代码改动 夜神模拟器怎么热更新
  14. office转换pdf [doc,docx,xls,xlsx]
  15. jojo第七部dio怎么复活_JOJO杂谈:DIO复活的那些年到底在干什么?
  16. 【回顾】巨杉数据库中标渤海银行,股份制银行再下一城
  17. 竞争10nm产品市场 联发科新增Helio X35
  18. 算法/贪心算法/FractionalKnapsack部分背包问题
  19. POJ3322Bloxorz I
  20. sql的简单的增删改查

热门文章

  1. 2022-2028全球沉浸式投影行业调研及趋势分析报告
  2. ffmpeg 修改分辨率
  3. 长整数转化成16进制字符串
  4. ecshop 在确认收货时新增加商品评价并送消费积分功能
  5. 庄懂着色器_L13_特效篇
  6. 嵌入式工程师面试题集-MCU_STM32
  7. Android 应用商店评分+APP分享
  8. 2022年潜江中级工程师职称申报材料和申报渠道是什么呢?甘建二
  9. 四叶草关闭啰嗦模式_真正的高性能车!Giulia 四叶草评测
  10. opencv 切取红色