1

タイプ (com.vividsolutions.jts.geom.Geometry) のジオメトリ オブジェクトがあります。現在、緯度、経度の形式になっていますが、座標を反転して緯度経度にして、mongodb の GeoJSON 形式にすることができます。

私が見ている私の制約は次のとおりです。a) 座標を反転したい入力は Geometry オブジェクトです。b) ジオメトリ オブジェクトは、ポリゴン タイプまたはマルチポリゴンのいずれかになります。c) タイプを Polygon/multipolygon にキャストする前に座標を反転させたい

geo.reverse() を試しましたが、うまくいきません。

同様に、次を使用してみました: CRSAuthorityFactory factory = CRS.getAuthorityFactory(true); CoordinateReferenceSystem crs = factory.createCoordinateReferenceSystem("EPSG:4326");

そして別のオプションで、私はそれがうまくいくとは思わなかった。

ありがとう!

4

5 に答える 5

1

これに対する潜在的な解決策の 1 つは、クラスを拡張して、必要なデータを便利な方法で出力する追加の関数を提供することです。

public Coordinate[] getReversedCoordinates(){

  Coordinate[] original = this.getCoordinates();
  Coordinate[] ret = new Coordinate[original.length];

  for(int i =0; i<original.length; i++){
      ret[i] = new Coordinate( original[i].x , original[i].y );
  }

  return ret;

}

または、データの解釈を変更することもできます。情報を具体的にどのように使用しているかわからないため、そのためのコード スニペットを提供するのは少し難しいです。

編集:

逆の座標を取得したら、線形リング タイプのジオメトリの複製を作成できます。これを行う手段は、ファクトリを使用してジオメトリ ファクトリを使用することです。

GeometryFactory gf = //However this was instantiated;
Coordinate[] reversedCoordinates = getReversedCoordinates();
gf.createLinearRing(reversedCoordinates);

コーディングを楽しんでください。質問があればコメントを残してください。

于 2014-12-23T16:11:16.130 に答える