Geo::HelmertTransform を廃止し、Geo::Transform.helmert を作りました。

でも、本当は、Geo::Transform::create_helmert を作るようにして Geo::HelmertTransform は存在しないほうがが良いのかもしれません。

ヘルマート変換クラス Geo::HelmertTransform を作りました。 - Relevant, Timely, and Accurate

この改善を施し、Geo::HelmertTransform を廃止して、Geo::Transform.helmert を作りました。

ドキュメントも書き換わっています

A class to transform coordinates.
座標変換器クラス

Methods

  • helmert
  • new
  • new
  • transform
  • transform
http://svgmapdata.sakura.ne.jp/geotools/classes/Geo/Transform.html

という構成になりました。

使用例

require 'geotools'

t = Geo::Transform::helmert([0, 0], [100, 100], [-10, -10], [90, 100])
Geo::Writer::open('abc1.shp') do |w1|
  Geo::Writer::open('abc2.shp') do |w2|
    100.times do |i|
      g = Geo::import_array_geometry([rand(100), rand(100)])
      w1.write(g, {'i' => i})
      w2.write(t.transform(g), {'i' => i})
    end
  end
end

このプログラムで作成した作成した二つの Shapefile を見る限り、うまくヘルマート変換を作ることができているようです。

geotools.rb 全体のページは、

http://svgmapdata.sakura.ne.jp/geotools/ です。

::と.の使い分けは

よく分かっていません。