问题标签 [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.
hibernate-5.x - 使用 Hibernate 5 和 Oracle 将几何存储为 SDO_POINT_TYPE
我Hibernate 5.1.0.Final
在 Java 应用程序中使用数据库持久性。这对我们来说会很方便,因为我们希望使用 Oracle 和 Postgres 实例,因此我们可以将此 ORM 作为抽象层。在使用 Hibernate-spatial 查询几何图形时的前一个问题中,我发布了一些配置。
现在的问题是当我们在 Oracle 中保留一些几何字段时。在我的 POJO 中,我有一个导入:
import com.vividsolutions.jts.geom.Geometry;
所以我在我的类中定义了以下属性:
它被持久化,我可以使用谓词来查询它。但是查看数据库内部,我可以看到 geom 字段的内容是:
MDSYS.SDO_GEOMETRY(2001,4326,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1,1),MDSYS.SDO_ORDINATE_ARRAY(0.094,51.488))
而不是我想要的,查询速度更快,并且是 Oracle 推荐的:
MDSYS.SDO_GEOMETRY(2001,4326,MDSYS.SDO_POINT_TYPE(0.094,51.488,NULL),NULL,NULL)
我应该怎么做才能将其存储为点 ( SDO_POINT_TYPE
) 而不是数组 ( SDO_ELEM_INFO_ARRAY
)?
编辑:我尝试更改Point
为如下所示,但据我所知,它没有任何区别。
java - Java - Generate internal bounding boxes starting from a bigger geographic bounding box
I need a way to generate internal bounding boxes (e.g. 1x1km squares) starting from a bigger geographic bounding box.
For example, starting from London bounding box, I want to get all the 1x1km bounding boxes within that geographic area.
Formats:
- a geographic bounding box is represented by 2 points, the bottom left point and the upper right point that delimit the geographic area;
- a point is represented by a [lat, lng] pair.
Is there a Java library implementing that feature or even just an algorithm? I also tried Java JTS, but it seems useless for that purpose.
Thanks in advance.
java - Geotools:wgs84 中缓冲区的边界框
我需要一个 Java 函数,它将在缓冲区周围生成一个边界框(矩形)。缓冲区由中心点(WGS84 坐标)和半径(以米为单位)定义。
在 JTS 中获取缓冲区的边界框似乎非常简单:
然而,这是纯平面几何。有没有办法使用距离以米为单位的坐标参考系来做到这一点?
最适合使用 Geotools,但其他 Java 解决方案也可以工作......
java - 确定多边形上线段的最佳起点和终点
我无法找出解决以下问题的最佳方法。我尝试了多种解决它们的方法,但我总是遇到一些极端情况。
问题如下:
- 你有一个
List
坐标(x 和 y 点)形成一个封闭的多边形。该列表保证形成一个多边形,其中的点按顺时针方向排列。 - 您将获得
Set
来自上述坐标的坐标(x 和 y 点)List
。 - 您必须找出使用上述所有点形成的线的起点和终点
Set
。
我遇到的问题是我无法弄清楚找到“最佳”起点和终点的方法。对于许多情况,您可以选择第一个和最后一个点(使用 的索引List
)来形成起点和终点,但这可能会导致一条线比它必须的要长。
例如,假设我们有以下多边形:
0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 0
并且Set
我们的线段必须包含以下坐标:0, 7, 3
。
如果我们找到最小和最大索引,我们得到index(0)
, index(7)
,所以我们可以形成线0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7
,这是一条有效的线,但它比它需要的长。最好的线段是7 -> 0 -> 1 -> 2 -> 3
.
如何Set
以有效的方式找到最佳(包含所有点的最短)线段?
对于上下文:我正在开发一个使用 JTS 几何图形绘制形状的应用程序。使用贝塞尔曲线平滑绘制的形状以产生“弯曲边缘”。绘制形状后(通过放置点),用户可以编辑形状。我们想使用它们修改的点(形成上述)来计算起点和终点Set
,这样我们就可以只“平滑”受影响的区域。
openlayers-3 - 如何从 GeoJson 创建 utfgrid 瓦片?
我有本地地图图块,也有几何图形。(GeoJson 从地理服务器获取)。现在我想从我的 GeoJson 文件创建 utfgrid。我一直在寻找一些可以帮助我的图书馆,但我找不到好的图书馆。
java - 为给定的一组航点或一条线绘制一个多边形?
上图显示了一个 geoLine (1 - 11)。每个点都是一个地理坐标。
对于给定的 geoLine,我需要像上图一样绘制多边形(边界框)。
这是为了在 GeoLine(路径/航路点)附近找到任何兴趣点 (POI),例如停车、燃料、餐厅(路径 / 航路点)(geoLine 两侧各 20 / 30 米。不超过 50 米。)
我猜 Elasticsearch 有一个功能,你可以指定多边形点,它给出了该多边形内的内容。为了做到这一点,我需要上图中的所有多边形点。
有人可以告诉我如何解决这个问题吗?任何解释以及代码都会有所帮助。
航点:
13.0489062,77.6037472
13.0493921,77.6028423
13.0494861,77.6017586
13.0491692,77.6010208
13.0482264,77.6010494
13.0472498,77.6010711
13.0461878,77.6011007
13.0454626,77.6010805
13.0446403,77.6011248
13.0438409,77.6010804
13.0438986,77.6017758
13.0438545,77.6030737
13.0439865,77.6040809
13.0439203,77.6056271
13.0438668,77.6066616
13.0436551,77.6077865
13.0434993,77.6088242
13.0432396,77.609767
13.0429808,77.6104908
13.0428103,77.6112412
13.0426729,77.6121114
13.0424444,77.6129859
13.0422521,77.6136721
13.0418346,77.6145997
13.0415062,77.6155134
13.0412306,77.6162379
13.0409749,77.6171142
13.0410531,77.6178208
13.0411159,77.618711
13.0411254,77.6195973
13.0410934,77.6203541
13.0412376,77.6215924
13.0412091,77.6223422
13.0410685,77.6234799
13.0404355,77.6241354
13.0398567,77.6245906
13.038993,77.6252223
13.0381411,77.6258873
编辑:语言是 JAVA。
java - 是否 (JTS) 线串正在进入或退出多边形
如果我linestring
在 JTS 中有一条(或通常是某种开放的折线),其方向由它的起点定义,是否有一些聪明的方法可以告诉在与封闭的交叉点polygon
是linestring
“进入”多边形还是退出它,要么:
- 在 JRS 中(我在文档中找不到方法),只有直线和闭合形状相交的坐标
intersection
- 一些通用的聪明方法。我目前已经通过测试一个非常小的距离来完成它,沿着边缘
linestring
的任一侧polygon
并测试哪个是'in',哪个是'out'。polygon
如果具有(不太可能)非常尖锐的内部边缘,这可能会返回不正确的结果。
java - org.geotools.geometry.jts.GeometryBuilder 线程安全吗?
GeoTools 的 GeometryBuilder ( org.geotools.geometry.jts.GeometryBuilder
) 线程的 JTS 变体是否安全?尽管非 JTS GeometryBuilder确实暗示它不是线程安全的,但文档中并不清楚。
“构建器”相对于工厂的主要优势在于它不必是线程安全的,并且可以保持状态以使您的工作更轻松。
java - LOG004:数据损坏。在第 12 点记录异常
我从未见过这个错误。我有一个 GlassFish 应用程序服务器实例,其中有一个(在此之前)完美运行的应用程序。它由几个使用 JMS 进行通信的 Web 应用程序组成。在单例 bean 中运行有计划的计时器任务,它们向另一台服务器发出多个 REST 请求,然后通过 JMS 发送接收到的 JSON。
此时某个地方会发生此异常,并且所有计时器都会被删除。问题是,我从未更改过代码中的任何内容,并且在此之前应用程序运行良好。REST-API 没有改变,任何地方都没有其他异常。
我检查了oracle 文档中的这个错误,但他们只说:
JTS5022 来自日志的意外异常 [{0}]。
解决方案:这是一个意外的内部错误。请联系 Sun 并提供完整的错误日志消息。
[2016-12-13T10:59:00.235+0000] [glassfish 4.1] [严重] [jts.log_error] [javax.enterprise.system.core.transaction.com.sun.jts.CosTransactions] [tid:_ThreadID=450 _ThreadName=__ejb-thread-pool6] [timeMillis: 1481626740235] [levelValue: 1000] [[ JTS5022: 来自日志的意外异常 [{0}]。com.sun.jts.CosTransactions.LogException:LOG004:数据已损坏。在 com.sun.jts.CosTransactions.Log.open(Log.java:172) 的 com.sun.jts.CosTransactions.Log.open(Log.java:172) 的 com.sun.jts.CosTransactions.LogControl.openFile(LogControl.java:541) 的第 12 点记录异常.CosTransactions.CoordinatorLog.openLog(CoordinatorLog.java:1161) 在 com.sun.jts.CosTransactions.CoordinatorLog.formatLogRecords(CoordinatorLog.java:1040) 在 com.sun.jts.CosTransactions.CoordinatorLog.write(CoordinatorLog.java:534) ) 在 com.sun.jts 的 com.sun.jts.CosTransactions.TransactionState.setState(TransactionState.java:732)。
我的理解是有一些日志文件损坏或任何东西。但我什至没有碰它们,它甚至没有说是哪一个。
我非常感谢任何建议。