Browse Source

원형 생성 utils 추가

feature/auth
박재우 2 years ago
parent
commit
27d5782b6f
  1. 19
      src/main/java/com/palnet/comn/utils/FlightUtils.java

19
src/main/java/com/palnet/comn/utils/FlightUtils.java

@ -10,6 +10,7 @@ import org.locationtech.jts.geom.Polygon;
import org.locationtech.jts.geom.impl.CoordinateArraySequence;
import org.locationtech.jts.operation.buffer.BufferOp;
import org.locationtech.jts.operation.buffer.BufferParameters;
import org.locationtech.jts.util.GeometricShapeFactory;
import org.locationtech.proj4j.BasicCoordinateTransform;
import org.locationtech.proj4j.CRSFactory;
import org.locationtech.proj4j.CoordinateReferenceSystem;
@ -34,6 +35,24 @@ public class FlightUtils {
return bufferCoords;
}
//기본좌표와 반지름을 받아 원을 생성하는 유틸
public static Coordinate[] createCircle(Coordinate circleCoords) {
GeometricShapeFactory shapeFactory = new GeometricShapeFactory();
GeometryFactory geometryFactory = new GeometryFactory();
double lng = circleCoords.x;
double lat = circleCoords.y;
double diameterInMeters = circleCoords.z;
shapeFactory.setCentre(new Coordinate(lng , lat));
shapeFactory.setHeight((diameterInMeters * 2) / 111320d);
shapeFactory.setWidth((diameterInMeters * 2) / (40075000 * Math.cos(Math.toRadians(lat)) / 360));
shapeFactory.setNumPoints(64);
final Polygon circle = shapeFactory.createEllipse();
circle.setSRID(4326);
Geometry geometry = geometryFactory.createGeometry(circle);
Coordinate[] coords = geometry.getCoordinates();
return coords;
}
//생성된 버퍼좌표에서 특정 좌표가 버퍼좌표 안에 속해있는지, 혹은 아닌지를 판단하는 유틸
public static boolean contains(Coordinate[] bufferCoords, Coordinate[] containsPoint) {

Loading…
Cancel
Save