希望の軸 2.0 の計算方法
昨日Web公開されていた藤村龍至さん「列島改造論2.0」の中で、小縮尺地図に直定規を当てて「希望の軸」を描かれている写真を見て、地図屋としてつい厳密実装(検証)してみました。ほぼ対蹠点まで延長。ジオクラスタ用の技術解説はあとで書きます。 maps.google.co.jp/?q=http://www.…
— _hfu_さん (@_hfu_) 9月 22, 2012
論文本文の趣旨にはまったく関係ないところでの、地図屋の趣味の範囲での作業です。その動機は、次の通り。
小縮尺地図に直定規や同心円が当たっている姿をみると、反射的に検証してしまいたくなってしまうのが地図屋。あとで時間を見つけて、遊び心でやってみる。 GeodeticCalculator を使おう。(GeoTools 9 を予定) issuu.com/contectures/do…
— _hfu_さん (@_hfu_) 9月 21, 2012
実際に表示したものを見た私の感想は次の通り。
この「福島第一原子力発電所から裏鬼門の方位に向かって引いた線(厳密版)」(仮称:希望の軸 2.0)の見所は、マニラとジャカルタを等しく掠めること、スンダ海峡をぴったり通り抜けること、喜望峰を回りこむこと、だと思いました。 maps.google.co.jp/?q=http://www.…
— _hfu_さん (@_hfu_) 9月 22, 2012
その実装は、次のとおり。JRuby を使って、Java 上の GeoTools にある測地学計算機を利用。電子国土Web.NEXT を使って計測した福島第一原子力発電所の位置から、方位角 -135度 を保って距離を変えていった点列を KML ファイルとして出力する。
%w{rubygems geo_ruby java ~/lib/geotools-8.2/gt-referencing-8.2.jar}. each {|l| require l} gc = (import 'org.geotools.referencing.GeodeticCalculator').new gc.setStartingGeographicPoint(141.0349, 37.4212) # Fukushima Dai'ichi wkt = 'LINESTRING (' 0.step(20000000, 100000) {|d| gc.setDirection(-135, d) pt = gc.getDestinationGeographicPoint wkt << "#{pt.x} #{pt.y}, " } wkt.chop!.chop! wkt << ')' g = GeoRuby::SimpleFeatures::LineString::from_ewkt(wkt) File.open('sw.kml', 'w').print <<-EOS <?xml version='1.0' encoding='UTF-8'?> <kml xmlns="http://earth.google.com/kml/2.0"> <Document> <Placemark> #{g.as_kml.chop!} </Placemark> </Document> </kml> EOS
この KML ファイルを、適当な場所(http://www.handygeospatial.info/2012/09/22/sw.kml )にアップロードして、これを Google Maps の q パラメータに入れれば( https://maps.google.co.jp/?q=http://www.handygeospatial.info/2012/09/22/sw.kml )OK。