1、根据经度X、维度Y、半径画出一个范围
public Polygon createCircle(double x, double y, final double RADIUS){
final int SIDES = 32;//圆上面的点个数
Coordinate coords[] = new Coordinate[SIDES+1];
for( int i = 0; i < SIDES; i++){
double angle = ((double) i / (double) SIDES) * Math.PI * 2.0;
double dx = Math.cos( angle ) * RADIUS;
double dy = Math.sin( angle ) * RADIUS;
coords[i] = new Coordinate( (double) x + dx, (double) y + dy );
}
coords[SIDES] = coords[0];
LinearRing ring = geometryFactory.createLinearRing( coords );
Polygon polygon = geometryFactory.createPolygon( ring, null );
return polygon;
}
2、根据经纬度得出一个点
Point point = geometryUtil.createPoint(Double.parseDouble(resultlist.get("LONGITUDE").toString()),Double.parseDouble(resultlist.get("LATITUDE").toString()) );
public Point createPoint(double x,double y){
Coordinate coord = new Coordinate(x, y);
Point point = geometryFactory.createPoint( coord );
return point;
}
3、判断该点是否在圈内。
if (polygon.contains(point)) {
stationBuffer.append(gson.toJson(list.get(i))+",");
}