我正在使用JTS Topology Suite处理我的应用程序中的某些几何体。作为起点,我实例化一个读者:
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
是否有其他选择?感谢。
P.S:我正在使用MYSQL数据库。
答案 0 :(得分:0)
首先,您可以尝试对多边形使用标准的java序列化/反序列化。
接下来,将LON和LAT存储为STRING并不是很有效,可能你应该尝试使用数字类型。
如果您提供分析结果,我们可以为您提供更多帮助 - 大部分时间都会消耗。但是我怀疑使用DB的操作是最慢的,所以你可以尝试一次获取所有条目,添加缓存。
另一种选择是在DB中存储每个GEOM的边界框点,并在SQL查询中仅获取属于边界框的点,并在java端执行精确的“包含”检查。