3

シェープファイルの座標を変換するにはどうすればよいですか?

そこでの反応は、私が正しい方向に進んだことを示しましたが、それでも問題を解決することはできませんでした。

1つの問題は、正しい投影法がまだ見つからないことです:https ://gis.stackexchange.com/questions/13330/how-can-i-correctly-transform-unproject-from-lcc

編集:GISサイトでのその質問に回答し、PROJコマンドラインツールcs2csを使用して正しい変換を再現することができました。次のようになります。

larry$  cs2cs -f "%.8f" +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs +to +proj=lonlat +datum=WGS84 +ellps=WGS84
6011287.4999795845 2100857.2499904726
-122.40375492   37.74919006 0.00000000

これで、正しい変換が行われたので、RGeoを使用して同じことを簡単な形式で試すことができました。

ruby-1.9.2-p180 :001 >     projection_str = ' +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs'
 => " +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs" 
ruby-1.9.2-p180 :002 >     projection = RGeo::CoordSys::Proj4.new(projection_str)
 => #<RGeo::CoordSys::Proj4:0x805cba18 " +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs +towgs84=0,0,0"> 
ruby-1.9.2-p180 :003 >     desired_str = '+proj=lonlat +datum=WGS84 +ellps=WGS84'
 => "+proj=lonlat +datum=WGS84 +ellps=WGS84" 
ruby-1.9.2-p180 :004 >     desired = RGeo::CoordSys::Proj4.new(desired_str)
 => #<RGeo::CoordSys::Proj4:0x805271ac " +proj=lonlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"> 
ruby-1.9.2-p180 :005 >     RGeo::CoordSys::Proj4::transform_coords(projection, desired, 6011287.4999795845, 2100857.2499904726 )
 => [-140.92282523143973, 30.16981659183029] 
  1. RGeoとcs2csで結果が異なるのはなぜですか?
  2. RGeoに正しい変換を実行させることができたら、ポイントではなく完全なジオメトリを変換するための適切なファクトリを作成する方法はありますか?
  3. シェープファイル内のすべてのポイントを変換して、人生を進めることができるようにするための回避策として使用できるコマンドラインツールはありますか?

一般的に:このライブラリを適切に使用する方法を誰かに教えてもらえますか?

ご覧いただきありがとうございます。

4

1 に答える 1

2

私は RGeo も Ruby も知らないので、暗闇での突っ込みとして、フィート単位の座標をメートルに置き換えてみてください:もう 1 つの可能性は、座標を交換することです。おそらく、RGeo はいくつかの型にはまらない仮定を立てます。

Ruby から実行可能ファイルを呼び出すことができる場合は、ogr2ogrを使用してシェープファイルを変換できます。

于 2011-08-10T17:06:19.320 に答える