2

Rails用のPostGISアダプタを使用してポリゴンを保存するにはどうすればよいですか? 私のモデルには次のものがあります。

self.rgeo_factory_generator = RGeo::Geos.factory_generator
set_rgeo_factory_for_column(:bounds, RGeo::Geographic.spherical_factory(:srid => 4326))

しかし、ポリゴンをDBに保存しようとすると、エラーは発生しませんが、常にポリゴンの保存に失敗します:

1.9.3p194 :011 > n.bounds = "POLYGON(-149.737965876574 61.1952881991104, -149.71848377896 61.1953198415937, -149.718483761252 61.1952938698801, -149.718483872402 61.1951924591105)"
 => "POLYGON(-149.737965876574 61.1952881991104, -149.71848377896 61.1953198415937, -149.718483761252 61.1952938698801, -149.718483872402 61.1951924591105)" 
1.9.3p194 :012 > n.save
   (0.2ms)  BEGIN
   (0.3ms)  COMMIT
 => true 
1.9.3p194 :013 > n.bounds
 => nil 

どうすればこれを機能させることができますか?

4

2 に答える 2

6

これは無効なWKTであり、次の 2 つの理由で解析できません。

  1. リングはありません。座標配列の周りに別の括弧のセットを追加する必要があります。
  2. リングは閉じていません。始点を終点として繰り返します。

有効な WKT は次のようになります。

POLYGON((-149.737965876574 61.1952881991104, -149.71848377896 61.1953198415937, -149.718483761252 61.1952938698801, -149.718483872402 61.1951924591105, -149.737965876574 61.1952881991104))
于 2012-12-10T19:49:09.313 に答える
2

純粋な PostGIS では、このポリゴンはgeometry contains non-closed ringsエラーを生成します。ポリゴンを「閉じる」ようにしてください (最後に最初のポイントを追加します)

于 2012-12-09T18:27:04.907 に答える