Warning !
You are using this software at your own risk.
There exists MS-IExplorer 3.0.x versions with faulty JIT-Compiler. If the WorldGroundMap
applet crashs your browser, so disable the use of the JIT compiler in the browser
settings and look for a newer version at microsoft.com. Without JIT the applet
is a little bit slower, but safe. In case of difficuties download the class files
and html page and try offline, until your browser settings (JIT) works safe.
From MS-IExplorer 3.01 Build 4.70.1215 the applet is working with JIT enabled.
Once loaded, you can cut the phone line to save money. Recomputing of the maps can be done offline or as stand alone Windows application using jview.exe. Under Windows95 I was not able to run jview.exe with this long names outside the J++ Developer Studio but under Windows NT 4.0 it works with command: jview.exe WorldGroundMap. The same problem with JIT as above can arise, crashing jview.exe. Even Java basicaly is safe, the Java virtual machine and the JIT compiler are normal applications that can crashs.
By rebuilding your own Palette class you can redefine the color legend even with more colors. Just replace then the Palette.class with your version.
WorldGroundMap ----------> load, run the applet now do not use JIT Option for this applet !
WorldGround -----------------> how to use offline
WorldGroundMap ----------> change the color palette
WorldGround -----------------> class/method description
WorldGroundMap.class -------------> the applet
GRLComboBox.class ----------------> the top dialog
GRLControls.class -------------------> the bottom dialog
GRLCanvas.class --------------------> display the map image
Legend.class ---------------------------> draws the legend
Palette.class ----------------------------> defines the colorset
WorldGround.class -------------------> the base class
WorldGroundConstant.class -------> Groundconstant calculation
WorldConductivity.class ------------> Conductivity calculation
WorldDielectricConstant.class ----> DielectricConstant calculation
With this set of classes enter the next lines to get the applet working in your
html document. The param lines are optional:
<applet code="WorldGroundMap.class" width=550 height=350>
<param name=Latitude value=33>
<param name=Longitude value=-120>
</applet>
// my Color Palette definition for 16 colors
import java.awt.*;
public class Palette
{
static public Color[] c =
{
new Color( 0, 0, 0), //0
new Color(128, 128, 128), //1
new Color(192, 192, 192), //2
new Color( 0, 0, 255), //3
new Color(128, 64, 255), //4
new Color(192, 128, 255), //5
new Color(192, 192, 255), //6
new Color(224, 224, 255), //7
new Color( 0, 192, 192), //8
new Color( 0, 192, 0), //9
new Color(128, 255, 0), //a
new Color(192, 255, 0), //b
new Color(255, 255, 0), //c
new Color(255, 192, 0), //d
new Color(255, 128, 0), //e
new Color(255, 64, 0) //f
};
}
Now you can just change the values for R G and B for each Color( R, G, B). The values goes from dark 0 to bright 255. //n is comment indicating the color index in the c array. Later in the application, the color is referenced as Palette.c[i]; The array size is set by the compiler. Use a Java compiler to compile the saved Palette.java file. This will generate the file Palette.class that will replaces the current class in the WorlGroundMap applet. To replace it, move/copy the Palette.class file to the WorldGroundMap directory. Finaly run the applet opening the html file. That's all !
// the base class
abstract class WorldGround
{
// Region of returned constants
public abstract int Type();
public abstract double Min();
public abstract double Max();
// Compute the Worldconstant at given position
public abstract double At(double Latitude, double Longitude);
// Compute a Worldconstant Array of same Latitude
public abstract void At(double Latitude, double Longitude, double Step, double[] Result);
Latitude, Longitude and Step are in degrees. At map generation it's quicker to compute an array of values for a given Latitude. Latitude and Longitude are the starting point, Step is the increment. The Result array is precreated and sized by the caller, the array is filled with values for the implicit Result.length.
class WorldGroundConstant extends WorldGround
{
// Region of returned constants
public int Type() {return 0;}
public double Min() {return -1.3D;}
public double Max() {return 1.3D;}
// Compute the GroundConstant at given position
public double At(double Latitude, double Longitude)
// Compute a Groundconstant Array of same Latitude
public void At(double Latitude, double Longitude, double Step, double[] Result)
class WorldConductivity extends WorldGround
{
// Region of returned constants
public int Type() {return 1;}
public double Min() {return 0.0D;}
public double Max() {return 6.0D;}
// Compute the WorldConductivity at given position
public double At(double Latitude, double Longitude)
// Compute a WorldConductivity Array of same Latitude
public void At(double Latitude, double Longitude, double Step, double[] Result)
class WorldDielectricConstant extends WorldGround
{
// Region of returned constants
public int Type() {return 2;}
public double Min() {return 0.0D;}
public double Max() {return 82.0D;}
// Compute the DielectricConstant at given position
public double At(double Latitude, double Longitude)
// Compute a DielectricConstant Array of same Latitude
public void At(double Latitude, double Longitude, double Step, double[] Result)