DclFitMapParmを用いたとき, DclSetWindowによって緯度・経度に関するウインドウ情報が指定されていると, その領域をほぼ含むような一部地域を描画するような地図投影変換が設定されます.
下の例ではウインドウ情報を指定し, DclFitMapParmを呼んでいます (この例ではメルカトルとコニカル2つの地図変換についてのみ示しました). こうすると, ウインドウとして指定した緯度・経度の範囲がビューポート内に ほぼ収まるように変換関数が設定されます.
なおこの例では, DclTransShortToNum によって変換関数の省略名から変換関数番号を得ています. また major な緯度・経度線と minor な緯度・経度線の間隔を それぞれ 10度, 2度としています.
またここでは, DclDrawMapが描く地図情報としてはcoast_japan が利用可能ですが, 作画量が多いのでcoast_worldを用いました.
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) |
変換関数の略称から関数番号を求める. |