An example ( coments, questions, etc: pawel@crwr.utexas.edu).

myprj = EqualAreaAzimuthal.Make(r)
myprj.SetCentralMeridian(-120)
myprj.SetReferenceLatitude(30)theView.SetUnits(#UNITS_LINEAR_METERS) theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)
To set a map projection by hand follow the steps:

Orographic, Lambert Equal-Area Azimuthal (Equatorial), and some other projcetions have two important parameters: Central Meridian and Reference Latitude. To make the illusion of the Earth rotation Avenue script must change in steps the Central Meridian by chosen value from 180 to -180 before the view is exported:
theview = av.getactivedoc
theprj = theview.getprojection
'===========================================================
'set files format to bmp (windows bitmap)
'===========================================================
exformat = 2
theFormats = theView.GetDisplay.ReturnExportFormats
'Returns a list of available export formats.
if (exformat = 1) then filex = ".wmf" end
if (exformat = 2) then filex = ".bmp" end
' here lines with other format file extensions can be added
theformat = theformats.get(exformat)
if (theFormat = nil) then
msgbox.error("File format not specified", "")
return 0
end
'===========================================================
' set the parameters of the projection
'===========================================================
'central meridian changes from -180 to 180
'reference latitude changes from -90 to 90
'Assume number of steps required to rotate Earth 360 degree
'this is the number of images will be created
no_Hsteps = 30
Hstep = 360/no_Hsteps
'stepzero = -180-Hstep
'set the reference latitude to 0
refl = 0
'===========================================================
' export files (loop) 1 image is redundant (there are two
' images for the cenral meridian = 180 (= -180)
' set the file prefix
fprx = "wrda"
'===========================================================
i=0
for each k in -180..180 by Hstep
i=i+1
cmrd = k
theprj.SetCentralMeridian(cmrd)
theprj.SetReferenceLatitude(refl)
' apply the projection to the view
theView.SetProjection(theprj)
if (i < 10) then
sname = fprx+"0"+i.asstring+filex
else
sname = fprx+i.asstring+filex
end
theFN = sname.asfilename
theExportDisplay = theView.GetDisplay.ExportStartFN(theFN, theFormat)
'Starts exporting graphics drawn on aDisplay to aFileName
theExportDisplay.Invalidate(FALSE)
theView.Draw(theExportDisplay)
'Draws aView onto a Display.
theExportDisplay.ExportEnd
'Stops exporting the graphics drawn on aDisplay
end
|
Open a new script and copy this listing into it. Compile the script and run it ! You should get 31 files named wrda01.bmp ... wrda31.bmp. (number of images is defined in line no_Hsteps = 30 and the file name prefix in the line fprx = "wrda" . You can use these files to construct an animated gif file (GIF89B). It should looks like it is shown below:
![]() |
<===== oops! Earth rotates wrong direction (?) Let's change one line in our script to: for each k in 180..-180 by -Hstep now it looks better =====> |
![]() |
It seems to me that Lambert Equal-Area Azimuthal (Equatorial) projection is not good for presenting the Earth rotation, Orographic gives a better picture. You can experiment with different projections. By manipulating projection parameters (Central Meridian and Reference Latitude) you can get the effect of flying above countries, fields, etc. I tried to do such a GIF but unfortunately ArcView (or my old PC) mess up with colors ... flight along N40 latitude .