地域モード

DclFitMapParmを用いたとき, DclSetWindowによって緯度・経度に関するウインドウ情報が指定されていると, その領域をほぼ含むような一部地域を描画するような地図投影変換が設定されます.

下の例ではウインドウ情報を指定し, DclFitMapParmを呼んでいます (この例ではメルカトルとコニカル2つの地図変換についてのみ示しました). こうすると, ウインドウとして指定した緯度・経度の範囲がビューポート内に ほぼ収まるように変換関数が設定されます.

なおこの例では, DclTransShortToNum によって変換関数の省略名から変換関数番号を得ています. また major な緯度・経度線と minor な緯度・経度線の間隔を それぞれ 10度, 2度としています.

またここでは, DclDrawMapが描く地図情報としてはcoast_japan が利用可能ですが, 作画量が多いのでcoast_worldを用いました.

regional.f90
program regional

  use dcl
  integer,parameter :: np=2
  character(len=32) :: cttl
  character(len=3) :: ctr(np) = (/'MER','CON'/)

    call DclOpenGraphics

    call DclSetAspectRatio( 2.0, 1.0 )
    call DclDivideFrame( 'y', 2, 1 )

    do i=1,np
      call DclNewFrame

      call DclSetWindow( 123.0, 147.0, 30.0, 46.0)
      call DclSetViewPort( 0.1, 0.9, 0.1, 0.9 )
      call DclTransShortToNum(ctr(i),ntr)
      call DclSetTransNumber( ntr )
      call DclFitMapParm
      call DclSetTransFunction

      call DclSetParm( 'ENABLE_CLIPPING', .true. )
      call DclDrawDeviceWindowFrame( 1 )
      call DclDrawViewPortFrame( 1 )
      call DclTransShortToLong( ctr(i), cttl )
      call DclDrawTextProjected( 0.5, 0.95, cttl, height=0.03, index=3 )

!      call DclDrawMap( 'coast_japan' )
      call DclDrawMap( 'coast_world' )
      call DclDrawGlobe
    end do

    call DclCloseGraphics

end program



関連リンク

DclSetWindow
(GRSWND)
ウインドウを設定する.
DclDrawGlobe
(UMPGLB)
地図の境界線(縁)と緯度線,経度線を描く.
DclDrawMap
(UMPMAP)
各種地図情報を描く.
DclTransShortToLong
(SGTRSL)
変換関数の略称から名称を求める.
DclTransShortToNum
(SGTRSN)
変換関数の略称から関数番号を求める.