[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002947] Re: map projection in GGraph



神代です.

現在の GGraph.fig の地図投影関連のオプションとしては,

  "map_axis"   (itr=10..33)
  "map_window" (itr<20)
  "map_radius" (itr>=20)

があり, 各投影法に対応しています.
itr=10,11 の場合のみ, GPhysオブジェクトの軸の範囲にしたがって地図投影
範囲を決める "map_fit" というオプションがあります.(デフォルトは itr=10
のときtrue, itr=11のときfalse)

なお, 海岸線の描画や主曲線・計曲線の描画などに関する設定は, GGraph.map
でおこないます.

私自身がよく使う itr=10 に関しては, やりたいことは全部できるようになっ
ていると思います. 使っていて困ることはもう特にないです. 

* データの一部を描きたい場合は, "map_fit"=>false にして "map_axis",
  "map_window" を指定します. ("map_axis" の設定により, サイクリックに
  描画位置をずらすこともできます)
* itr=10 の場合は他の投影法と違って, itr=1 と同じように縦横の軸に緯度
  経度のラベルを書きたくなりますが, その機能も堀之内さんが作っておられ
  て, 未対応の部分を私が少し追加しました.
  - GGraph.[contour|tone|vector] で, "map_axes"=>true とすれば緯度経度
    の軸とラベルを書く.
  - GGraph.axes で "xmaplabel", "ymaplabel" を設定すれば ("lon" or "lat"),
    90N, EQ, 120E のようなラベルにできる

いっぽう, 他の投影法については, 私自身はほとんど使ってなくて, よく理解
していないです.


At Fri, 04 Apr 2008 10:53:44 +0900,
Takeshi Horinouchi wrote:
> 
> 堀之内です。
> 
> 追伸。
> 
> 領域を狭く限って表示するなら、視点なども調整すべ
> き投影法は結構あると思います。例えば、日本付近だけを
> 表示するのに、北極中心の正射図法で出すのは、
> いまいちですよね。たぶん、円錐系と方位系の図法では、
> 狭領域を対称にする場合は、領域の「中心」(球面geometry
> で)を基準にするといいんですかね?
> 
> といったことも考えて、もしも対応していただけるなら、
> 大変嬉しいです。
> なお、領域をあわせたり視点を調整するのには馴染まない
> 投影法もあるのではないかと思いますので、デフォルトを
> 変更する場合はその判断も必要と思います。
> また、それなりに広い領域なら細かく調整しないほうがいい
> ので、「狭い領域」かどうかの判定も必要になるかと。
> 
> ということで、地図投影全般について気合を入れて対応するのは
> ちょっと大変かも。とりあえずは、自分がつかう特定のについて
> 対応するとか....
> 
> > 堀之内です。
> > 
> > > > あえて全球を書くようにしているように見えますが、
> > > > なにか理由があるのでしょうか。
> > 
> > # すみません、地図投影関係は自分でもだいぶ忘れてしまってます。
> > 
> > 自動的に領域を調整する対応はあとづけだったもので、
> > とりあえずやりやすい緯度経度の場合に対応したの
> > だと思います。
> > 神代さんが書かれているように、自分で地図投影パラメタを
> > 指定すればできるはずですが、面倒なので、window に
> > 応じてお任せで設定もできたらいいですね。でも、たぶん当時、
> > 自分の需要は緯度経度で間に合ったので、各投影法について、
> > 含むべき緯度経度範囲をきりよく含むような地図投影パラメター
> > の生成を試みることをサボったということなんだと思います。
> > すみません。
> > 
> > > 神代です.
> > > 
> > > GGraph.fig のオプションで,
> > > "map_fit"=>false にして, "map_axis" や "map_window" を設定するとよいの
> > > ではないでしょうか.
> > > "map_fit" は, itr=10(cylindrical) か 11 (Mercator) のときに有効で,
> > > true の場合は自動的にGphysオブジェクトの軸の範囲で地図投影の範囲が決ま
> > > ります.
> > > 
> > > gphys/sample/ggraph_mapfit-axes_dr002687.rb
> > > 
> > > にいろいろと例があります.
> > > 
> > > # ちなみに,
> > > # gphys/sample/ggraph_latlon_labelling_dr002690.rb
> > > # のほうは, itr=10 のときに 90N, EQ, 90S など緯度経度に特化したラベリ
> > > # ングを自動でしてくれるオプションの例です. こちらも便利だと思います.
> > > 
> > > 
> > > At Thu, 27 Mar 2008 12:28:27 +0900,
> > > Seiya Nishizawa wrote:
> > > > 
> > > > GGraphを使ってメルカトルなどのマッププロジェクションで
> > > > 全球でない一部の地域のデータを描画しようとしても、
> > > > 全球の図が書かれます。
> > > > 
> > > > GGraph.tone (contour) 内で呼ばれている GGraph.fig にオプション "map_fit"=>true を渡し、
> > > > GGraph.fig 内で呼ばれている DCL.umpset("lglobe",true) をコメントアウトすると、
> > > > 領域の図が描けます。
> > > > 
> > > > あえて全球を書くようにしているように見えますが、
> > > > なにか理由があるのでしょうか。
> 
> > 
> 
> 
>