Geotools:wgs84 中缓冲区的边界框

2024-04-06

我需要一个 Java 函数来生成缓冲区周围的边界框(矩形)。缓冲区由中心点(WGS84 坐标)和半径(以米为单位)定义。

在 ITS 中获取缓冲区的边界框似乎非常简单:

Point center = ....
Geometry boundingBox = center.buffer(...).getEnvelope();

然而,这是纯平面几何。有没有办法使用坐标参考系来做到这一点,距离以米为单位?

最好使用 Geotools,但其他 Java 解决方案也可以使用...


尽管您以另一种方式处理它,但我有另一种解决方案。结果将比您提出的解决方案更加精确。

GeometryFactory GEOMETRY_FACTORY = JTSFactoryFinder.getGeometryFactory();

// Remember, order is (longitude, latitude)
Coordinate center = Coordinate(2.29443, 48.85816);
Point point = GEOMETRY_FACTORY.createPoint(center);

// Buffer 50KM around the point, then get the envelope
Envelope envelopeInternal = buffer(point, 50000).getEnvelopeInternal();

// Then you can play with the envelope, e.g.,
double minX = envelopeInternal.getMinX();
double maxX = envelopeInternal.getMaxX();

// The buffer using distanceInMeters
private Geometry buffer(Geometry geometry, double distanceInMeters) throws FactoryException, TransformException {
     String code = "AUTO:42001," + geometry.getCentroid().getCoordinate().x + "," + geometry.getCentroid().getCoordinate().y;
     CoordinateReferenceSystem auto = CRS.decode(code);

     MathTransform toTransform = CRS.findMathTransform(DefaultGeographicCRS.WGS84, auto);
     MathTransform fromTransform = CRS.findMathTransform(auto, DefaultGeographicCRS.WGS84);

     Geometry pGeom = JTS.transform(geometry, toTransform);
     Geometry pBufferedGeom = pGeom.buffer(distanceInMeters);
     return JTS.transform(pBufferedGeom, fromTransform);
}

这是结果图,缓冲区为红色,信封为黑色。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Geotools:wgs84 中缓冲区的边界框 的相关文章

  • 在 Spring Boot 中重新加载/刷新缓存

    我正在使用 Spring Boot 对于缓存 我使用 Ehcache 到目前为止一切正常 但现在我必须重新加载 刷新 那么我该如何执行此操作 以便我的应用程序不会出现任何停机时间 我在Spring Ehcache中尝试了很多方法 但它不起作
  • Eclipse 中的 Java 简单电子邮件程序

    我想制作一个简单的程序 您可以从其中发送电子邮件命令行 我找到了这个教程 http www tutorialspoint com java java sending email htm http www tutorialspoint com
  • Java简单加密

    我想加密存储在磁盘上的文本 配置 文件 尝试使用DES http en wikipedia org wiki Data Encryption Standard加密 我在客户端计算机上遇到了致命错误 后来我发现该算法无法处理重音字符 我怀疑这
  • 平衡括号问题的优化解

    给定一个仅包含字符的字符串 and 判断输入字符串是否有效 输入字符串在以下情况下有效 左括号必须由相同类型的括号封闭 左括号必须按正确的顺序关闭 请注意 空字符串也被视为有效 示例1 Input Output true Example 2
  • 使用用户名进行 Java LDAP 身份验证

    好吧 这让我发疯 我正在尝试使用 Java 创建 LDAP 身份验证 如果我在 SECURITY PRINCIPAL 中使用我的名字和姓氏 一切都很好 这是我的代码 try Hashtable
  • JSF 错误 - IllegalStateException:PWC3999:提交响应后无法创建会话[重复]

    这个问题在这里已经有答案了 我是 JSF 新手 正在构建一个使用 Facelet 创建的应用程序 这是我的模板master xhtml
  • 使用 Thymeleaf 时我们应该删除 HTML 属性吗?

    我正在研究 Thymeleaf 发现几乎所有示例中都有 Thymeleaf 的标签值以及标准 HTML 值 例如 这些
  • Hibernate、MySQL 视图和 hibernate.hbm2ddl.auto = 验证

    我可以在 Hibernate 中使用 MySQL 视图 将它们视为表 即 该实体与为表创建的实体没有什么不同 但是 当 Hibernate 设置为验证模型时 我的应用程序将不会部署 因为它找不到视图 因为它假设它是一个表 是否可以在启用部署
  • Android 防火墙与 VpnService

    我正在尝试使用 BS 项目的 VpnService 为 Android 实现一个简单的防火墙 我选择 VpnService 因为它将在非 root 设备上运行 它将记录连接并让您过滤连接 基于IP 有一个应用程序可以做到这一点 因此这是可能
  • 当用户使用相同的凭据登录两次时如何使用户会话无效

    我正在使用带有 Richfaces 和 Facelets 的 JSF 1 2 我有一个应用程序 其中包含许多会话范围的 Bean 和一些应用程序 Bean 假设用户使用 Firefox 登录 创建一个会话 ID A 然后他打开 Chrome
  • Knuth-Morris-Pratt 算法

    解决方案是Knuth Morris Pratt 算法 https en wikipedia org wiki Knuth E2 80 93Morris E2 80 93Pratt algorithm 干草堆 AAAAAAAAA 针 AAA
  • Android Google 地图:隐藏整个地图的多边形或形状

    我试图隐藏除一个区域之外的整个地图 因为我使用的多边形在我想要显示的区域中有一个洞 问题在于 根据缩放的不同 空白区域会被多边形的颜色覆盖 或者多边形会失去其颜色 这是代码 polygon hide all world map float
  • 酷还是傻? Catch(异常[NamingException, CreateException] e)

    我正在编写一些代码 我注意到异常处理中的一种模式让我思考 try do stuff throws JMS Create and NamingException catch NamingException e log1 e rollback
  • APACHE POI 从 Java 中的 Excel 获取精确的字体颜色

    在 Excel 工作表中 如何使用 Java 中的 Apache POI 获取准确的字体颜色值 我试图通过使用来获取字体颜色 org apache poi ss usermodel Font f book getFontAt style g
  • Android 以编程方式停止 toast 通知?

    有没有办法以编程方式停止 Toast 消息 假设我有一个按钮 单击它可以滚动 toast 消息 并且在 onclick 事件中我想停止队列中的所有消息并只显示新消息 我该怎么做 我的代码的简化版本如下 代码 public class Hel
  • 错误:列“this_.phitorsionangle”必须出现在 GROUP BY 子句中或在聚合函数中使用

    我在执行 sql 查询时遇到了一些问题 我正在使用 Hibernate Criteria 来构建查询 我通过按一定间隔 binSize 舍入值然后对它们进行分组来从数据库创建一些容器 当我直接在 SQL 中使用查询尝试时 效果非常好 SEL
  • 解析 SWIG 接口文件的结构属性

    这是我不久前问过的问题的延续 为通过参数返回的函数创建类型映射 https stackoverflow com questions 12793973 create a typemap for a function that returns
  • 使用 OpenNLP 获取句子的解析树。陷入困境。

    OpenNLP 是一个关于自然语言处理的 Apache 项目 NLP 程序的目标之一是解析一个句子 并给出其语法结构的树 例如 天空是蓝色的 这句话 可能会被解析为 S NP VP The sky is blue where S是句子 NP
  • 丰富:数据表行跨度问题

    我需要创建一个 rich dataTable 甚至扩展 具有以下功能 我有一个公司类 其中包含产品对象的集合 我想展示下表 我仍然没有弄清楚如何使用子表执行此操作 在所有示例中 我发现子表具有与主表完全相同的列 据推测 我需要在前两列中使用
  • selenium 没有找到合适的方法,直到(ExpectedCondition)

    这是有线的问题 我导入的项目运行 100 几个月前 今天我已将其与依赖项一起导入 但存在问题WebDriverWait 这是我的代码 WebDriverWait driverWait new WebDriverWait driver 100

随机推荐

  • 测量库调用和回调之间的时间

    你好 在 iPhone 应用程序中 我使用一个库 C 它在计算完成时异步进行回调 现在我想测量在进行回调之前所花费的时间 包括调用库的方法 是否有可能使用 Apple 的 Instruments 应用程序来做到这一点 最佳实践是什么 过去
  • C++ 跨文件引用变量

    我有一个项目 需要在另一个 CPP 文件中引用一个 CPP 文件中声明的变量 这可能吗 如果是这样 怎么办 如果您将其声明为全局 顶级 位于任何函数定义之上 并使用 extern 这是可能的放在其他文件中以使编译器知道 Main cpp i
  • Ruby Mongodb 驱动程序 $gt 在日期条件下充当 $gte,为什么?

    我有一个奇怪的情况 gt and gteruby mongodb 驱动程序中的条件 所以这是代码 timeline timeline db find date gt gt s time username in gt followers ar
  • 如何在 Perl 中替换现有文件中的字符串

    我想在名为 1 classification dat 2 classification dat 等的所有文本文件中将 蓝色 一词替换为 红色 我想编辑同一个文件 所以我尝试了以下代码 但它不起作用 我哪里出错了 files glob cla
  • 使用python更改Windows快捷方式.lnk文件的图标

    我想更改a的图标 lnk我创建后的文件 到目前为止 这是我的主要代码 import win32com client shell win32com client Dispatch WScript Shell shortcut shell Cr
  • 如何使用 Python 3.4.2 在 Windows 7 中安装 scipy

    我安装时遇到问题scipy 当我跑步时 python m pip install scipy 我收到以下消息 C Python34 lib site packages pip main py run on 01 14 15 15 56 16
  • 如何检测flutter webview中内部html何时发生变化

    我在用着webview flutter https pub dev packages webview flutter要从 Flutter 应用程序上的 URL 查看页面 我需要做的是检测 HTML 代码中何时发生更改 而不更改 URL 因为
  • 在 Swift 中的一处导入整个项目的框架?

    我自己做了一个Cocoa Touch Framework 并且我只想将其导入到代码中的一处 在 Xcode Objective C 的早期版本中 有一个中心位置位于Supporting Files 它如何适用于基于 Swift 的项目 创建
  • 将 JSON 查询条件转换为 MongoDB/Mongoose 操作

    我正在客户端使用 Angular 8 构建一个应用程序 在服务器端使用 NodeJS 12 和 MongoDB 4 Mongoose 5 构建一个应用程序 我有一个由以下生成的查询角度查询构建器模块 https www npmjs com
  • 对列表中的 Erlang 记录进行排序?

    我在erlang中有一条记录 record myrec id 0 price 0 quantity 0 然后 我有一个记录列表 我想按 id 和价格按降序和升序排序 其中价格是第一个键 如果两个记录具有相同的价格 我想按 id 对它们进行排
  • 声明一个元素数量为 0 的数组仍然可以存储值

    我知道使用负索引纯粹是运气 但出于好奇我尝试了这个 我知道你可以声明 array 0 就像 malloc 0 一样 是合法的 但是我为什么可以在 array 0 中存储一个值呢 include
  • 使用 Instagram Basic Display API 时出现“无效平台应用程序”错误

    我正在尝试使用 Instagram Basic 显示 API 但是当我发布授权代码以获取访问令牌时 我不断收到以下错误 有人能帮我解决这个问题吗 Error error type OAuthException code 400 error
  • 跳出嵌套循环

    如果我有一个嵌套在另一个循环中的 for 循环 我怎样才能以最快的方式有效地退出两个循环 内部和外部 我不想使用布尔值 然后不得不说转到另一个方法 而只是执行外循环之后的第一行代码 有什么快速又好的方法可以解决这个问题 我认为异常并不便宜
  • 如何在 Visual Basic 2012 中对日期使用 BindingSource.Filter?

    我正在尝试过滤我的数据库以显示从我表单上的日历中选择的日期的所有预订 这是我写的代码 Public selDate As DateTime Dim response As Integer Public Sub FilterBooking s
  • Angularjs jquery UI 自动完成

    我正在尝试在 Angular 指令中实现 jquery 的自动完成功能 我收到的源数据来自 websocket 响应 它不起作用 我认为响应延迟导致了这里的问题 如果有人能解释下面的代码 我将不胜感激 是否有任何优雅的技术可以使用某种请求
  • 创建新的 django 项目时出现 Pydev 错误

    每次我使用钛 eclipse 和 pydev 创建一个新的 django 项目时 我都会收到此错误 实际上 它确实创建了文件settings py 我想知道是什么导致了这个错误以及如何修复它 这实际上是 Django 1 4 的 PyDev
  • 枚举程序集的所有已安装版本(在 GAC 中)

    是否可以使用 C 枚举 GAC 中程序集的所有已安装版本 例如 我有一个名为 My Assembly 的程序集 该程序集可能有各种版本 1 0 0 0 2 3 4 5 0 1 2 4 等 并且可以针对各种平台 x86 x64 任何 CPU
  • HTML 输入不更新值

    我有一个非常奇怪的问题 至少对我来说 我动态创建文本框 效果很好 但问题是 当我尝试写入这些内容时 如果我检查 html 代码 我写入的值不会出现 我不知道为什么会发生这种情况 也不知道如何解决这个问题 这是我的代码示例 ul class
  • 如何重置reactiveValues?

    重置单个无功值只需通过reactiveVal NULL 然而怎样才能彻底重置reactiveValues 虚拟应用程序包含我的一些方法来保留新鲜和干净的反应值 但它们都没有真正做到我希望它们做的事情 此外 观察时似乎有一种奇怪的行为reac
  • Geotools:wgs84 中缓冲区的边界框

    我需要一个 Java 函数来生成缓冲区周围的边界框 矩形 缓冲区由中心点 WGS84 坐标 和半径 以米为单位 定义 在 ITS 中获取缓冲区的边界框似乎非常简单 Point center Geometry boundingBox cent