我有一個巨大的一組點已經加載在一個平面內我需要繪製一個圓/橢圓從一個給定的點和以米爲單位的半徑距離開始,然後檢查哪些點在圓內。圓點與JTS
我已經用within()方法做了多邊形,但是我找不到繪製圓/橢圓的方法,而不必指定多邊形周圍的每個點。
有沒有辦法做到這一點在JTS或我需要另一個Java庫?
我有一個巨大的一組點已經加載在一個平面內我需要繪製一個圓/橢圓從一個給定的點和以米爲單位的半徑距離開始,然後檢查哪些點在圓內。圓點與JTS
我已經用within()方法做了多邊形,但是我找不到繪製圓/橢圓的方法,而不必指定多邊形周圍的每個點。
有沒有辦法做到這一點在JTS或我需要另一個Java庫?
您可以驗證距離點的距離小於半徑。不需要畫圓圈來知道里面有哪些點。爲了縮短運行時間,請將距離的平方與半徑的平方進行比較;這節省了不必要的平方根操作。
對於橢圓,問題只是稍微困難一點,涉及二次形式x^2 + k y^2
。
如果我理解正確的話,你有半徑和中心,因此可以得出這樣與JTS一個圓圈:
public static Geometry createCircle(double x, double y, final double RADIUS) {
GeometricShapeFactory shapeFactory = new GeometricShapeFactory();
shapeFactory.setNumPoints(32);
shapeFactory.setCentre(new Coordinate(x, y));
shapeFactory.setSize(RADIUS * 2);
return shapeFactory.createCircle();
}
爲什麼shapeFactory.setNumPoints(32);?你是怎麼想出32的? – 2017-04-27 17:36:58