嗨,我一直在学习http://googledevelopers.blogspot.com/2014/12/building-scalable-geofencing-api-on.html教程,这是我的问题,
我有一个经度和纬度坐标列表,作为点添加到JTS() 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英里的圆圈内找到所有的点。
耽误您时间,实在对不起
发布于 2015-05-14 07:36:30
结果发现我在后台犯了一个愚蠢的错误。当我把物品添加到树中时,我把x和y的和弦混在一起,这样Lat Longs就被颠倒了。在切换它们之后,我现在可以将圆圈的大小设置为0.1左右,它工作得很好。
https://stackoverflow.com/questions/30084959
复制相似问题