问题标签 [jts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 搜索 JTS STR 树
嗨,我一直在关注本教程http://googledevelopers.blogspot.com/2014/12/building-scalable-geofencing-api-on.html,这是我的问题,
我有一个经度和纬度坐标列表,这些坐标已作为点添加到 JTS(Java 拓扑套件)STR 树中。
现在我想将一个圆形区域发送到 STR 树,以查找所有落在圆形中的点。
但是,搜索结果会发回经度和纬度点树中的所有数据。当我将圆的大小降低到 320 以下时,我不会从 STR 树的搜索中收到任何结果。有没有人有这方面的经验,理想情况下我想创建一个圆圈,找到一个~7英里的圆圈内的所有点。
谢谢你的时间
java - 如何获得 WKT 区域?
我使用 jts.jar,包是 com.vividsolutions.jts.geom,来获取几何图形的区域。但是方法 getArea() 并没有给我正确的结果。我的代码是
java - 从线串中提取最近点索引到给定点?
让我们将线串视为点列表,我将其命名为 trail。我需要检测哪个点离这条小路足够近。我有另一个称为兴趣点的线串,我需要从轨迹线串返回最近的索引点。我想提一下,这些兴趣点不包含在轨迹线串中,因此我将通过给出该兴趣点以某种方式评估该轨迹中的索引点。结果兴趣点将获得跟踪列表中存在的值。
[编辑]:
我将使用纯数字转换这个问题。我觉得这很容易。
输入列表 [0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5]。输入数:3.30
我可以很容易地看到这个条件: list[n] < number < list[n+1] 然后我可以检查成本:
成本 1 = 数字 - 列表 [n] 成本 2 = 列表 [n+1] - 数字。
然后我可以得到 N 的索引 if (cost1 < cost2) return N else return N+1。
[重要的]:
点对象无法与数字相提并论,这使我陷入了盲点。
java - JTS(java拓扑套件)voronoi图
在为图片实施了一个非常幼稚的镶嵌之后,我开始寻找更快的东西,因为我的实施需要几秒钟的时间来处理 4 位数的网站,在环顾 jts 之后似乎已经足够了,但我已经用它头撞了一段时间,所以我决定来在这里问,我有一张我想使用 voronoi 图进行镶嵌的图片,但是一旦我设置了 VoronoiDiagramBuilder (对我来说)参数似乎是正确的,就会发生许多意想不到的事情。
其中width=900,height=598,siteList=5000,这是构建voronoi图的顶点数。
我希望几何区域 geo.getArea() 为 900*598,但它实际上是一个更大的数字,geo.getPoints() 也是如此,它返回一个大于 siteList 大小的数字;最后,图中各个多边形的坐标不在我用 voronoi.setClipEnvelope(new Envelope(0,width,0,height)) 设置的信封内。
在这一点上,我认为我遇到了一些非常错误的事情,或者我应该使用另一个库来更好地满足我的简单需求,因为 jts 似乎对于图片镶嵌来说太过分了,即使我喜欢速度。
java - JTS Geometry.intersects() 方法产生无限循环
我正在尝试使用 JTS 库检查 Multipolygon 是否与列表中的哪个 Polygon 相交。但是,该方法陷入无限循环并以堆空间不足错误结束。
该方法适用于显然不相交的对。当可能相交的第一对出现时,无限循环开始。
以下是两个有问题的 Geometry 对象的坐标序列,(GeoJson 格式):
编辑 1 - 添加代码:
多面体:
多边形:
这是用于生成多边形的代码:
对于多多边形:
检查两个几何图形是否相交:
编辑 2:如果我从两个几何创建距离,代码运行良好,例如将多边形的 x 和 y 乘以 10。
java - 有没有办法在 JTS 中将自相交多边形转换为多多边形?
采用无效的多边形POLYGON((0 100, 100 100, 0 0, 100 0, 0 100))
- 具有未声明交点的鸡蛋计时器形状
许多说明说 JTS 可以使用以下buffer
方法创建此版本的有效版本:
但是,这会产生POLYGON ((0 100, 100 100, 50 50, 0 100))
部分多边形丢失的输出:
有没有办法让 JTS 验证多边形,以便MULTIPOLYGON(((0 100, 100 100, 50 50, 0 100)), ((0 0, 100 0, 50 50, 0 0)))
为给定的输入生成输出?
这似乎应该内置到 API 中(也许这种行为是一个错误) - 我错过了什么吗?
谢谢你。
java - 使用 JTS 从多个 LineStrings 计算交点
我有 3 条线定义为线 A、线 B 和线 C,并且想计算线 B 和 C 与 A 之间的交点。从 JTS 有一个函数LineIntersector应该有助于实现这一点。我需要帮助将此函数应用于线条以找到交点,即。像 computeIntersection(line A, line B) 之类的东西。谢谢!
java - 如何从边界框计算空间关系?
假设我有一张图片,里面有一些数字。用户可以通过在图形周围绘制边界框来选择其中的 2 个。我想做的是计算这2个边界框(所以2个矩形)之间的各种空间关系,例如:水平,垂直,对角线,近,远,重叠,包含等......
我必须在java中做到这一点。
我已经知道这个库的存在:http: //www.vividsolutions.com/jts/JTSHome.htm
但我不确定它是否可以帮助我处理水平、垂直、对角线、近和远等关系。也许它可以帮助重叠和包含。
我想问的是,在我开始编写某种临时实现之前,是否有一些理论可以解决这个问题(当然,我对如何实现这种关系有想法,但也许我应该知道一些事情)。
java - 使用休眠空间查询n公里半径内的所有对象?
我使用休眠空间将地理位置附加到汽车。我的卡域类如下所示:
我的程序在 Grails 中,所以我提供的示例在 Groovy 中。我在这里找到了一个类似的帖子,它并没有真正回答关于如何正确指定半径以设置半径的 n 公里的最重要问题。
这是我计算圆几何的方法:
圆的大小除以 88.1 只是一个肮脏的修复来获得一个近似的尺寸,但它仍然是错误的。
我的查询是这样完成的:
这工作不是很准确。此查询返回了一些应该在圆圈外的汽车。
这是一个例子。我的中心是汉堡,半径是40公里。我做了一个谷歌地图可视化。
这是我设置的radius = 40
时间:
您可以看到,在左上角,仍然绘制了一辆位于圆圈外的汽车。这不应该是这样。在我看来,我用谷歌地图绘制的圆不等于我在代码中为查询绘制的圆几何。
这是我设置的radius = 30
时间:
您会看到右下角的汽车消失了,这是正确的,但左上角的汽车仍然保留在查询中。
当我绘制我创建的圆时,createCircle
我得到以下信息(getCoordinates()
用于获取圆的坐标):
如何查询40公里范围内的所有车辆?
java - SDO_GEOM.VALIDATE_GEOMETRY 方法 13349 错误
我正在使用jts 几何对象将我的几何对象存储为 Oracle SDO_Geometry。我在 WGS84 坐标中的几何图形。即使我创建了空间索引,当我尝试使用 SDO_GEOM.VALIDATE_GEOMETRY 方法验证我的几何图形时,我仍然遇到一些问题,我得到 13349 错误。我猜我的创建圆方法无法正常工作。即使我为 WGS84 设置了 SRID no ,它也会为圆计算错误的点。找不到解决方案。你知道问题出在哪里吗?
这是我调用 createCircle 方法的代码
几何区域;
area=createCircle(lon, lat, range);
area.setSRID(4326);