とにかくJTSジオメトリを使用している場合は、任意のGeometryオブジェクトで使用できる空間リレーションを使用できます。
ネイバー間の少なくとも1つのポイントが共通であり、それらの内部が交差しないようにすることができる場合は、タッチを使用します。
内部が交差しないことを保証できない場合は、交差を使用します。データソースによっては、これがおそらくより良い選択です。
ポリゴンを考えると、ネイバーを取得するメソッドは次のようになります。
public ArrayList<Polygon> getNeighbourList(Polygon center, ArrayList<Polygon> possibleNeighbourList){
// result list
ArrayList realNeighbourList = new ArrayList();
for(Polygon p : possibleNeighbourList){
// check if current polygon is a neighbour of the center polygon by using the spatial relation touches or intersects
if(center.intersects(p)){
realNeighbourList.add(p);
}
}
return realNeighbourList;
}