嗨,我一直在关注本教程http://googledevelopers.blogspot.com/2014/12/building-scalable-geofencing-api-on.html,这是我的问题,
我有一个经度和纬度坐标列表,这些坐标已作为点添加到 JTS(Java 拓扑套件)STR 树中。
现在我想将一个圆形区域发送到 STR 树,以查找所有落在圆形中的点。
Coordinate center = new Coordinate(entity.getLongitude(), entity.getLatitude());
GeometricShapeFactory gsf = new GeometricShapeFactory();
gsf.setCentre(center);
gsf.setNumPoints(20);
**gsf.setSize(320.0);**
Polygon poly = gsf.createCircle();
Coordinate[] coordinates = poly.getCoordinates();
//Create polygon from the coordinates.
GeometryFactory fact = new GeometryFactory();
LinearRing linear_ring = new GeometryFactory().createLinearRing(coordinates);
Polygon polygon = new Polygon(linear_ring, null, fact);
List<STRLeaf> items = strTree.query(polygon.getEnvelopeInternal());
但是,搜索结果会发回经度和纬度点树中的所有数据。当我将圆的大小降低到 320 以下时,我不会从 STR 树的搜索中收到任何结果。有没有人有这方面的经验,理想情况下我想创建一个圆圈,找到一个~7英里的圆圈内的所有点。
谢谢你的时间