<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Google Earth Preferences</title>
</head>
<body>
<h1>Google Earth Preferences</h1>
<p>
Specifies the preferences used by the STEM to GoogleEarth interface.
<p>
<ul>
  <li><em>Choose the Method used to display STEM Results</em></li>
  <ul>
	<li><em>LogOnly</em><br>With this option, the KML files 
	are written but not displayed by GoogleEarth. 
	This would be used when you are either going to display 
	the GoogleEarth visualization at a later time or if you are 
	going to run GoogleEarth from another system with the KML 
	files on a shared disk.</li>
	<li><em>"Log+Servlet"</em><br>With this option, 
	the KML files are written and then displayed by GoogleEarth. 
	GoogleEarth actually requests the file from a webserver 
	Servlet which reads the file and sends it to GoogleEarth.</li>
	<li><em>"AsyncServlet"</em><br>The KML is written on every cycle, 
	overlaying the file written for the previous cycle. GoogleEarth 
	asks for new data on a predetermined interval and is sent the 
	current KML.  The advantage over the previous method is that 
	it helps keep GoogleEarth from falling too far behind the STEM processing.</li>
	<li><em>"DirectLaunch"</em><br>With this option, the KML files 
	are directly sent to GoogleEarth without using an intermediate 
	web server. This can cause problems because GoogleEarth may get 
	files faster than it can process them but it is more efficient.</li>
	<li><em>"ManualDisplay"</em><br> The map is generated by user 
	clicking the <b>Display</b> button. This is the default option.</li>
  </ul>
  <li><em>"Folder for KML logging:"</em>This is the folder where 
	STEM will write the KML files that GoogleEarth will read.  
	If it already contains KML files, the user will be given 
	the oportunity to delete them, keep them or choose a new folder.</li>
  <li><em>"Use internal webserver"</em><br>This is used to cause the 
    webserver built into Eclipse to be used.</li>
  <li><em>"Hostname:port for external webserver"</em>
    <br>This is the required hostname and port for an external webserver. 
    Normally the internal webserver would be used so this is not needed 
    but there are cases where one might want to use an existing web server. </li>
  <li><em>"Automatically startup GoogleEarth"</em>
    <br>If specified then when the STEM-GoogleEarth view is started,
     then the GoogleEarth application is also launched.</li>
  <li><em>"Automatically process every simulation"</em>
    <br>if specified, then when you start any simulation running, 
    it will automatically have its processing be mapped to GoogleEarth.  
    Only one simulation will be displayed by GE since it would 
    be counterproductive to show 2 different views at the same time. </li>
  <li><em>"Write KML files only every N th cycle"</em>
    <br>If the simulation does not change rapidly from cycle to cycle, 
    significant overhead can be saved by only sending data to 
    GoogleEarth every Nth cycle.</li>
  <li><em>"Chose Aspect to be Logged.cycle"</em>
    <br>Select the disease aspect to be displayed as colored polygons
    on the GoogleEarth map.</li>
</ul>
<img src="img/preferencesgetoplevel.jpg" />
</body>
</html>