0

我正在使用JTS 拓扑套件来处理我的应用程序中的一些几何图形。作为起点,我实例化了一个阅读器:

WKTReader reader = new WKTReader();

然后,使用阅读器检查多边形记录:

Geometry poly = reader.read(res.getString("GEOM"));
Geometry point = reader.read("Point(" + res.getString("LON")
    + " " + res.getString("LAT") + ")");
boolean inside = poly.contains(point);

问题在于以这种方式找到我的多边形需要很长时间。所以我需要这个过程的另一个选择。是否有任何替代方法可以WTKReader用于此过程?谢谢。

PS:我使用的是 MYSQL 数据库。

4

1 回答 1

0

首先,您可以尝试对多边形使用标准的 java 序列化/反序列化。

接下来,将 LON 和 LAT 存储为 STRING 不是很有效,可能您应该尝试数字类型。

如果您提供分析结果,我们可以为您提供更多帮助——这是最耗费时间的。但是我怀疑使用 DB 的操作是最慢的,因此您可以尝试一次获取所有条目,添加缓存。

另一种选择是将每个 GEOM 的边界框点存储在 DB 中,并在 SQL 查询中仅获取属于边界框的点,并在 java 端执行精确的“包含”检查。

于 2013-04-16T10:26:23.423 回答