# embedding_metadata

key: chroma:document
string_value:
void init() { os = new 
Choice(); browser = new 
Choice(); 
//add items to os list 
os.add("Windows 98/XP"); 
os.add("Windows NT/2000"); 
os.add("Solaris"); 
os.add("MacOS"); 
\{ add items to browser list 
browser.add("Netscape 3.x"); 
browser.add("Netscape 4.x"); 
browser.add("Netscape 5.x"); 
browser.add("Netscape 6.x"); 
browser.add("Internet Explorer 
4.0"); browser.add("Internet 
Explorer 5.0"); 
browser.add("Internet Explorer 
6.0"); browser.add("Lynx 2.4");


key: chroma:document
string_value:
6.0"); browser.add("Lynx 2.4"); 
browser.select("Netscape 4.x"); 
\{ add choice lists to 
window add(os); 
add(browser); 
\{ register to receive item 
events 
os.addItemListener(this); 
browser.addItemListener( 
this); 
}  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 94 
 
 
 
public void itemStateChanged(ItemEvent ie) { 
repaint(); 
} 
// Display current selections. 
public void paint(Graphics g) 
{ msg = "Current OS: "; 
msg += os.getSelectedItem();


key: chroma:document
string_value:
msg += os.getSelectedItem(); 
g.drawString(msg, 6, 120); 
msg = "Current Browser: "; 
msg += browser.getSelectedItem(); 
g.drawString(msg, 6, 140); 
} 
} 
 
Lists 
The List class provides a compact, multiple-choice, scrolling selection list. Unlike the Choice 
object, which shows only the single selected item in the menu, a List object can be 
constructed to show any number of choices in the visible window. It can also be created to


key: chroma:document
string_value:
allow multiple selections. List provides these constructors: List( ) 
List(int numRows ) 
List(int numRows , boolean multipleSelect ) 
A List box is similar to a choice box, it allows the user to select multiple items. 
· To create a list box: 
(or) 
List lst = new List(); 
 
List lst = new List (3, true); 
This list box initially displays 3 items. The next parameter true represents that the user can


key: chroma:document
string_value:
select more than one item from the available items. If it is false, then the user can select only 
one item. 
= To add items to the list box: lst.add("text"); 
= To get the selected items: String x[] = lst.getSelectedItems(); 
= To get the selected indexes: int x[] = lst.getSelectedIndexes (); 
//  Demonstrate Lists. 
import java.awt.*; import 
java.awt.event.*; import 
java.applet.*; /* 
<applet code="ListDemo" width=300 height=180> 
</applet> 
*/


key: chroma:document
string_value:
</applet> 
*/ 
public class ListDemo extends Applet implements ActionListener 
{ List os, browser; 
String msg = ""; 
public void init() { os 
= new List(4, true);  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 95 
 
 
 
browser = new List(4, false); 
\} add items to os list 
os.add("Windows 98/XP"); 
os.add("Windows 
NT/2000"); 
os.add("Solaris"); 
os.add("MacOS"); 
\} add items to browser list 
browser.add("Netscape 3.x"); 
browser.add("Netscape 4.x");


key: chroma:document
string_value:
browser.add("Netscape 4.x"); 
browser.add("Netscape 5.x"); 
browser.add("Netscape 6.x"); 
browser.add("Internet Explorer 
4.0"); browser.add("Internet 
Explorer 5.0"); 
browser.add("Internet Explorer 
6.0"); browser.add("Lynx 2.4"); 
browser.select(1); 
\} add lists to window 
add(os); 
add(browser); 
//  register to receive action events 
os.addActionListener(this); 
browser.addActionListener(this); 
} 
public void actionPerformed(ActionEvent ae) 
{ repaint(); 
}


key: chroma:document
string_value:
{ repaint(); 
} 
//  Display current selections. 
public void paint(Graphics g) 
{ 
int idx[]; 
msg = "Current OS: "; 
idx = os.getSelectedIndexes(); 
for(int i=0; i<idx.length; i++) 
msg += os.getItem(idx[i]) + " "; 
g.drawString(msg, 6, 120); 
msg = "Current Browser: "; 
msg += browser.getSelectedItem(); 
g.drawString(msg, 6, 140); 
} 
} 
Scroll Bars 
Scroll bars are used to select continuous values between a specified minimum and maximum.


key: chroma:document
string_value:
Scroll bars may be oriented horizontally or vertically. Scrollbar class is useful to create 
scrollbars that can be attached to a frame or text area. Scrollbars can be arranged vertically or 
horizontally.  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
\{ To create a scrollbar : Scrollbar sb = new Scrollbar (alignment, start, step, min, max); 
alignment: Scrollbar.VERTICAL, Scrollbar.HORIZONTAL 
start: starting value (e.g. 0)


key: chroma:document
string_value:
start: starting value (e.g. 0) 
step: step value (e.g. 30) // represents scrollbar length 
min: minimum value (e.g. 0) 
max: maximum value (e.g. 300) 
· To know the location of a scrollbar: int n = sb.getValue (); 
· To update scrollbar position to a new position: sb.setValue (int position); 
· To get the maximum value of the scrollbar: int x = sb.getMaximum (); 
· To get the minimum value of the scrollbar: int x = sb.getMinimum ();


key: chroma:document
string_value:
· To get the alignment of the scrollbar: int x = getOrientation (); 
This method return 0 if the scrollbar is aligned HORIZONTAL, 1 if aligned VERTICAL. 
// Demonstrate scroll bars. 
import java.awt.*; 
import java.awt.event.*; 
import java.applet.*; 
/* 
<applet code="SBDemo" width=300 height=200> 
</applet> 
*/ 
public class SBDemo extends Applet 
implements AdjustmentListener, MouseMotionListener 
{ String msg = ""; 
Scrollbar vertSB, horzSB; 
public void init() {


key: chroma:document
string_value:
Scrollbar vertSB, horzSB; 
public void init() { 
int width = Integer.parseInt(getParameter("width")); int 
height = Integer.parseInt(getParameter("height")); 
vertSB = new Scrollbar(Scrollbar.VERTICAL, 0, 1, 0, height); 
horzSB = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, width); 
add(vertSB); 
add(horzSB); 
// register to receive adjustment events  
vertSB.addAdjustmentListener(this); 
horzSB.addAdjustmentListener(this); 
addMouseMotionListener(this); 
}


key: chroma:document
string_value:
addMouseMotionListener(this); 
} 
public void adjustmentValueChanged(AdjustmentEvent ae) { 
repaint(); 
} 
// Update scroll bars to reflect mouse dragging.  
public void mouseDragged(MouseEvent me) { 
int x = me.getX(); 
int y = me.getY(); 
vertSB.setValue(y); 
horzSB.setValue(x);  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
repaint(); 
} 
//  Necessary for MouseMotionListener 
public void mouseMoved(MouseEvent me) { 
} 
//  Display current value of scroll bars.


key: chroma:document
string_value:
} 
//  Display current value of scroll bars. 
public void paint(Graphics g) { 
msg = "Vertical: " + vertSB.getValue(); 
msg += ", Horizontal: " + horzSB.getValue(); 
g.drawString(msg, 6, 160); 
\} show current mouse drag position 
g.drawString("*", horzSB.getValue(), 
vertSB.getValue()); 
} 
} 
Graphics 
The AWT supports a rich assortment of graphics methods. All graphics are drawn relative to 
a window. 
Graphics class and is obtained in two ways:


key: chroma:document
string_value:
Graphics class and is obtained in two ways: 
\}  It is passed to an applet when one of its various methods, such as paint( ) or update( ), 
is called. 
\} It is returned by the getGraphics( ) method of Component. 
Drawing Lines 
Lines are drawn by means of the drawLine( ) method, shown here: 
void drawLine(int startX, int startY, int endX, int endY) 
drawLine( ) displays a line in the current drawing color that begins at startX,startY and ends 
at endX,endY.


key: chroma:document
string_value:
at endX,endY. 
The following applet draws several lines: 
//  Draw lines import 
java.awt.*; import 
java.applet.*; /* 
 
<applet code="Lines" width=300 
height=200> </applet> 
*/ 
public class Lines extends Applet 
{ public void paint(Graphics g) { 
g.drawLine(0, 0, 100, 100); 
g.drawLine(0, 100, 100, 0); 
g.drawLine(40, 25, 250, 180); 
g.drawLine(75, 90, 400, 400); 
g.drawLine(20, 150, 400, 40); 
g.drawLine(5, 290, 80, 19); 
} }  JAVA PROGRAMMING Page 
 
 
 
Drawing Rectangles


key: chroma:document
string_value:
Drawing Rectangles 
The drawRect( ) and fillRect( ) methods display an outlined and filled rectangle, respectively. 
They are shown here: 
void drawRect(int top, int left, int width, int height) 
void fillRect(int top, int left, int width, int height) 
The upper-left corner of the rectangle is at top,left. The dimensions of the rectangle 
are specified by width and height. 
To draw a rounded rectangle, use drawRoundRect( ) or fillRoundRect( ), both shown


key: chroma:document
string_value:
here: void drawRoundRect(int top, int left, int width, int height,int xDiam, int yDiam) 
void fillRoundRect(int top, int left, int width, int height, int xDiam, int yDiam) 
// Draw rectangles 
import java.awt.*; 
import java.applet.*; 
/* 
<applet code="Rectangles" width=300 
height=200> </applet> 
*/ 
public class Rectangles extends Applet { 
public void paint(Graphics g) { 
g.drawRect(10, 10, 60, 50); g.fillRect(100, 
10, 60, 50); g.drawRoundRect(190, 10,


key: chroma:document
string_value:
10, 60, 50); g.drawRoundRect(190, 10, 
60, 50, 15, 15); g.fillRoundRect(70, 90, 
140, 100, 30, 40); 
}} 
Drawing Ellipses and Circles 
To draw an ellipse, use drawOval( ). To fill an ellipse, use fillOval( ). These methods 
are shown here: 
void drawOval(int top, int left, int width, int height) 
void fillOval(int top, int left, int width, int height) 
// Draw 
Ellipses 
import 
java.awt.* 
; import 
java.apple 
t.*; /* 
<applet code="Ellipses" width=300 
height=200> </applet> 
*/


key: chroma:document
string_value:
height=200> </applet> 
*/ 
public class Ellipses extends Applet 
{ public void paint(Graphics g) { 
g.drawOval(10, 10, 50, 50); 
g.fillOval(100, 10, 75, 50); 
g.drawOval(190, 10, 90, 30); 
g.fillOval(70, 90, 140, 100); 
} } 
 
 JAVA PROGRAMMING Page 
 
 
MRCET UNIT-V JP NOTES III B.TCH. I SEM 
Drawing Arcs 
Arcs can be drawn with drawArc( ) and fillArc( ), shown here: 
void drawArc(int top, int left, int width, int height, int startAngle,int sweepAngle)


key: chroma:document
string_value:
void fillArc(int top, int left, int width, int height, int startAngle,int sweepAngle) 
The arc is bounded by the rectangle whose upper-left corner is specified by top,left and whose 
width and height are specified by width and height. The arc is drawn from startAngle through  
the angular distance specified by sweepAngle. Angles are specified in degrees. 
Zero degrees is on the horizontal, at the three o’clock position. The arc is drawn


key: chroma:document
string_value:
counterclockwise if sweepAngle is positive, and clockwise if sweepAngle is negative. 
Therefore, to draw an arc from twelve o ’clock to six o ’clock, the start angle would be 90  
and the sweep angle 180. 
Drawing Polygons 
It is possible to draw arbitrarily shaped figures using drawPolygon( ) and fillPolygon( 
), shown here: 
void drawPolygon(int x[ ], int y[ ], int numPoints) 
void fillPolygon(int x[ ], int y[ ], int numPoints)


key: chroma:document
string_value:
The polygon’s endpoints are specified by the coordinate pairs contained within the x and y  
arrays. The number of points defined  by x and  y is  specified by numPoints. There are  
alternative forms of these methods in which the polygon is specified by a Polygon object. 
The following applet draws several arcs: 
//Draw Arcs import java.awt.*; import java.applet.*; 
/* 
<applet code="Arcs" width=300 height=200> 
</applet> 
*/


key: chroma:document
string_value:
</applet> 
*/ 
public class Arcs extends Applet { public void paint(Graphics g) { g.drawArc(10, 40, 70, 70, 0, 75); 
g.fillArc(100, 40, 70, 70, 0, 75); 
g.drawArc(10, 100, 70, 80, 0, 175); 
g.fillArc(100, 100, 70, 90, 0, 270); 
g.drawArc(200, 80, 80, 80, 0, 180);}} 
The following applet draws an hourglass shape: 
// Draw Polygon import java.awt.*; import java.applet.*; 
/* 
<applet code="HourGlass" width=230 height=210> 
</applet> 
*/


key: chroma:document
string_value:
</applet> 
*/ 
public class HourGlass extends Applet { public void paint(Graphics g) { 
int xpoints[] = {30, 200, 30, 200, 30}; 
int ypoints[] = {30, 30, 200, 200, 30}; int num = 5; g.drawPolygon(xpoints, ypoints, num); 
} 
 
 MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
SWINGS 
Swing is a set of classes that provides more powerful and flexible components than are  
possible with the AWT. Swing is a GUI widget toolkit for Java. It is part of Oracle's Java


key: chroma:document
string_value:
Foundation Classes (JFC) that is used to create window -based applications. It is built on  
the top of AWT (Abstract Windowing Toolkit) API and entirely written in java. 
 
In addition to the familiar components, such as buttons, check boxes, and labels, Swing 
supplies several exciting additions, including tabbed panes, scroll panes, trees, and tables. 
Even familiar components such as buttons have more capabilities in Swing. For example, a


key: chroma:document
string_value:
button may have both an image and a text string associated with it. Also, the image can be 
changed as the state of the button changes. 
 
Unlike AWT components, Swing components are not implemented by platform specific  
code. Instead, they are written entirely in Java and, therefore, are platform -independent. 
The term lightweight is used to describe such elements. 

The javax.swing package provides classes for java swing API such as JButton, JTextField, JTextArea,


key: chroma:document
string_value:
JRadioButton, JCheckbox, JMenu, JColorChooser etc. 
 
Differences between AWT and Swing 
 
AWT Swing 
AWT components are called Heavyweight 
component. 
Swings are called light weight component 
because swing components sits on the top of 
AWT components and do the work. 
AWT components are platform dependent. Swing components are made in purely java and 
they are platform independent. 
AWT components require java.awt package. Swing 
package. 
components require javax.swing


key: chroma:document
string_value:
package. 
components require javax.swing 
AWT is a thin layer of code on top of the OS. Swing is much larger. Swing also has very 
much richer functionality. 
AWT stands for Abstract windows toolkit. Swing is also called as JFC’s (Java Foundation 
classes). 
This feature is not supported in AWT. We can have different look and feel in Swing. 
Using AWT, you have to implement a lot of 
things yourself. 
Swing has them built in.  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page


key: chroma:document
string_value:
JAVA PROGRAMMING Page 
 
 
 
 
The Swing component classes are: 
Class Description 
AbstractButton Abstract superclass for Swing buttons. 
ButtonGroup Encapsulates a mutually exclusive set ofbuttons. 
ImageIcon Encapsulates an icon. 
JApplet The Swing version of Applet. 
JButton The Swing push button class. 
JCheckBox The Swing check box class. 
JComboBox Encapsulates a combo box (combination of a drop-down list & text field). 
JLabel The Swing version of a label.


key: chroma:document
string_value:
JLabel The Swing version of a label. 
JRadioButton The Swing version of a radio button. 
JScrollPane  Encapsulates a scrollable window. 
JTabbedPane Encapsulates a tabbed window. 
JTable Encapsulates a table-based control. 
JTextField The Swing version of a text field. 
JTree Encapsulates a tree-based control. 
Hierarchy for Swing components: 
Swing has many advanced features like JTabel, 
Jtabbed pane which is not available in AWT. 
Also.Swing  components  are called


key: chroma:document
string_value:
Also.Swing  components  are called 
"lightweight" because they do not require a 
native OS object to implement their 
functionality. JDialog and JFrame  are 
heavyweight, because they do have a peer. So 
components like JButton, JTextArea, etc., are 
lightweight because they do not have an OS 
peer. 
This feature is not available in AWT.  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
JApplet


key: chroma:document
string_value:
JAVA PROGRAMMING Page 
 
 
 
JApplet 
Fundamental to Swing is the JApplet class, which extends Applet. Applets that use Swing must 
be subclasses of JApplet. JApplet is rich with functionality that is not foundin Applet. 
The content pane can be obtained via the method shown here: 
Container getContentPane( ) 
The add( ) method of Container can be used to add a component to a content pane. Its form is 
shown here: 
void add(comp) 
Here, comp is the component to be added to the content pane.


key: chroma:document
string_value:
JFrame 
Create an object to JFrame: JFrame ob = new JFrame ("title"); (or) 
Create a class as subclass to JFrame class: MyFrame extends JFrame 
Create an object to that class : MyFrame ob = new MyFrame (); 
Example: Write a program to create a frame by creating an object to JFrame 
class. //A swing Frame 
import javax.swing.*; 
class MyFrame 
{ 
public static void main (String agrs[]) 
{ JFrame jf = new JFrame ("My Swing Frame..."); 
jf.setSize (400,200); 
jf.setVisible (true);


key: chroma:document
string_value:
jf.setSize (400,200); 
jf.setVisible (true); 
jf.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); 
} 
} 
 
Note: To close the frame, we can take the help of getDefaultCloseOperation () method of 
JFrame class, as shown here: getDefaultCloseOperation (constant); 
where the constant can be any one of the following: 
◼ JFrame.EXIT_ON_CLOSE: This closes the application upon clicking on close button. 
◼ JFrame.DISPOSE_ON_CLOSE: This disposes the present frame which is visible on


key: chroma:document
string_value:
the screen. The JVM may also terminate. 
◼ JFrame.DO_NOTHING_ON_CLOSE: This will not perform any operation upon clicking 
on close button. 
◼ JFrame.HIDE_ON_CLOSE: This hides the frame upon clicking on close button. 
 
Window Panes: In swings the components are attached to the window panes only. A window  
pane represents a free area of a window where some text or components can be displayed. For  
example, we can create a frame using JFrame class in javax.swing which contains a free area


key: chroma:document
string_value:
inside it, this free area is called 'window pane'. Four types of window panes are available in  
javax.swing package.  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
Glass Pane: This is the first pane and is very close to the monit ors screen. Any components to 
be displayed in the foreground are attached to this glass pane. To reach this glass pane, we use  
getGlassPane () method of JFrame class.


key: chroma:document
string_value:
getGlassPane () method of JFrame class. 
Root Pane: This pane  is below the glass pane.  Any components to  be displayed  in the 
background are displayed in this pane. Root pane and glass pane are used in animations also. 
For example, suppose we want to display a flying aeroplane in the sky. The aeroplane can be  
displayed as a .gif or .jpg file in the glass pane where as the blue sky can  be displayed in the root


key: chroma:document
string_value:
pane in the background. To reach this root pane, we use getRootPane () method of JFrame class. 
Layered Pane: This pane lies below the root pane. When we want to take several components 
as a group, we attach them in the layered pane. We can reach this pane by calling 
getLayeredPane () method of JFrame class. 
Content Pane: This is the bottom most pane of all. Individual components are attached to this 
pane. To reach this pane, we can call getContentPane () method of JFrame class.


key: chroma:document
string_value:
Displaying Text in the Frame: 
paintComponent (Graphics g) method of JPanel class is used to paint the portion of a component  
in swing. We should override this method in our class. In the following example, we are writing  
our class MyPanel as a subclass to JPanel and override the painComponent () method. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Write a program to display text in the frame 
import javax.swing.*; 
import java.awt.*; 
class MyPanel extends JPanel


key: chroma:document
string_value:
import java.awt.*; 
class MyPanel extends JPanel 
{ public void paintComponent (Graphics g) 
{ super.paintComponent (g); //call JPanel’s method 
setBackground (Color.red); 
g.setColor (Color.white); 
g.setFont (new Font("Courier New",Font.BOLD,30));  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
rawString ("Hello Readers!", 50, 100); 
} 
} 
class FrameDemo extends JFrame 
{ FrameDemo () 
{ 
Container c = getContentPane (); 
MyPanel mp = new MyPanel (); 
c.add (mp);


key: chroma:document
string_value:
MyPanel mp = new MyPanel (); 
c.add (mp); 
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); 
} 
public static void main(String args[]) 
{ FrameDemo ob = new FrameDemo (); 
ob.setSize (600, 200); 
ob.setVisible (true); 
} 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
TEXT FIELDS 
The Swing text field is encapsulated by the JTextComponent class, which extends JComponent. 
It provides functionality that is common to Swing text components. One of its subclasses is


key: chroma:document
string_value:
JTextField, which allows you to edit one line of text. Some of its constructors are shown here: 
JTextField( ) 
JTextField(int cols) 
JTextField(String s, int cols) 
JTextField(String s) 
import java.awt.*; 
import javax.swing.*; 
/* 
<applet code="JTextFieldDemo" width=300 height=50>  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
</applet> 
*/ 
public class JTextFieldDemo extends JApplet { 
JTextField jtf; 
public void init() 
{ 
// Get content pane


key: chroma:document
string_value:
public void init() 
{ 
// Get content pane 
Container contentPane = getContentPane(); 
contentPane.setLayout(new FlowLayout()); 
// Add text field to content 
pane jtf = new 
JTextField(15); 
contentPane.add(jtf); 
} 
} 
 
 
 
BUTTONS 
Swing buttons provide features that are not found in the Button class defined by the AWT. For  
example, you can associate an icon with a Swing button. Swing buttons are subclasses of the


key: chroma:document
string_value:
AbstractButton class, which exte nds JComponent. AbstractButton contains many methods that  
allow you to control the behavior of buttons, check boxes, and radio buttons. 
The JButton Class 
The JButton class provides the functionality of a push button. JButton allows an icon, a string, or 
both to be associated with the push button. Some of its constructors are shown here: 
· To create a JButton with text: JButton b = new JButton (“OK”);


key: chroma:document
string_value:
· To create a JButton with image: JButton b = new JButton (ImageIcon ii); 
· To create a JButton with text & image: JButton b = new JButton (“OK”, ImageIcon ii); 
It is possible to create components in swing with images on it. The image is specified by 
ImageIcon class object. 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
/* 
<applet code="JButtonDemo" width=250 height=300> 
</applet> 
*/ 
public class JButtonDemo extends JApplet implements ActionListener {


key: chroma:document
string_value:
JTextField jtf; 
public void init() { 
// Get content pane 
Container contentPane = getContentPane(); 
contentPane.setLayout(new FlowLayout()); 
// Add buttons to content pane  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
ImageIcon france = new ImageIcon("france.gif"); 
JButton jb = new JButton(france); 
jb.setActionCommand("France"); 
jb.addActionListener(this); contentPane.add(jb); 
 
ImageIcon germany = new ImageIcon("germany.gif"); 
jb = new JButton(germany);


key: chroma:document
string_value:
jb = new JButton(germany); 
jb.setActionCommand("Germany"); 
jb.addActionListener(this); 
contentPane.add(jb); 
ImageIcon italy = new ImageIcon("italy.gif"); 
jb = new JButton(italy); 
jb.setActionCommand("Italy"); 
jb.addActionListener(this); 
contentPane.add(jb); 
ImageIcon japan = new ImageIcon("japan.gif"); 
jb = new JButton(japan); 
jb.setActionCommand("Japan"); 
jb.addActionListener(this); 
contentPane.add(jb); 
// Add text field to 
content pane jtf = new 
JTextField(15);


key: chroma:document
string_value:
content pane jtf = new 
JTextField(15); 
contentPane.add(jtf); 
} 
public void actionPerformed(ActionEvent ae) 
{ jtf.setText(ae.getActionCommand()); 
} 
} 
CHECK BOXES 
The JCheckBox class, which provides the functionality of a check box, is a concrete 
implementation of AbstractButton. Its immediate superclass is JToggleButton, which provides  
support for two-state buttons. Some of its constructors are shown here: 
JCheckBox(Icon i) 
JCheckBox(Icon i, boolean state) 
JCheckBox(String s)


key: chroma:document
string_value:
JCheckBox(String s) 
JCheckBox(String s, boolean state) 
JCheckBox(String s, Icon i) 
JCheckBox(String s, Icon i, boolean state) 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
/* 
<applet code="JCheckBoxDemo" width=400 height=50> 
</applet> 
*/  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
public class JCheckBoxDemo extends JApplet implements ItemListener { 
JTextField jtf; 
public void init() 
{ 
// Get content pane


key: chroma:document
string_value:
public void init() 
{ 
// Get content pane 
Container contentPane = getContentPane(); 
contentPane.setLayout(new FlowLayout()); 
// Create icons 
ImageIcon normal = new ImageIcon("normal.gif"); 
ImageIcon rollover = new ImageIcon("rollover.gif"); 
ImageIcon selected = new ImageIcon("selected.gif"); 
// Add check boxes to the content pane 
JCheckBox cb = new JCheckBox("C", normal); 
cb.setRolloverIcon(rollover); 
cb.setSelectedIcon(selected); 
cb.addItemListener(this); contentPane.add(cb);


key: chroma:document
string_value:
cb.addItemListener(this); contentPane.add(cb); 
 
cb = new JCheckBox("C++", 
normal); cb.setRolloverIcon(rollover); 
cb.setSelectedIcon(selected); 
cb.addItemListener(this); 
contentPane.add(cb); 
cb = new JCheckBox("Java", normal); 
cb.setRolloverIcon(rollover); 
cb.setSelectedIcon(selected); 
cb.addItemListener(this); 
contentPane.add(cb); 
cb = new JCheckBox("Perl", normal); 
cb.setRolloverIcon(rollover); 
cb.setSelectedIcon(selected); 
cb.addItemListener(this); 
contentPane.add(cb);


key: chroma:document
string_value:
cb.addItemListener(this); 
contentPane.add(cb); 
// Add text field to the content pane 
jtf = new JTextField(15); 
contentPane.add(jtf); 
} 
public void itemStateChanged(ItemEvent ie) { 
JCheckBox cb = (JCheckBox)ie.getItem(); 
jtf.setText(cb.getText()); 
} 
} 
 
RADIO BUTTONS 
Radio buttons are supported by the JRadioButton class, which is a concrete implementation of 
AbstractButton. Its immediate superclass is JToggleButton, which provides support for two-


key: chroma:document
string_value:
state buttons. Some of its constructors are shown here:  MRCET UNIT-V JP NOTES III B.TCH. I SEM 
JAVA PROGRAMMING Page 
 
 
 
JRadioButton(Icon i) 
JRadioButton(Icon i, boolean state) 
JRadioButton(String s) 
JRadioButton(String s, boolean state) 
JRadioButton(String s, Icon i) 
JRadioButton(String s, Icon i, boolean state) 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
/* 
<applet code="JRadioButtonDemo" width=300 height=50> 
</applet> 
*/


key: chroma:document
string_value:
</applet> 
*/ 
public class JRadioButtonDemo extends JApplet implements ActionListener { 
JTextField tf; 
public void init() { 
// Get content pane 
Container contentPane = getContentPane(); 
contentPane.setLayout(new FlowLayout()); 
1. Add radio buttons to content pane 
JRadioButton b1 = new JRadioButton("A"); 
b1.addActionListener(this); 
contentPane.add(b1); 
JRadioButton b2 = new JRadioButton("B"); 
b2.addActionListener(this); 
contentPane.add(b2); 
JRadioButton b3 = new JRadioButton("C");


key: chroma:document
string_value:
JRadioButton b3 = new JRadioButton("C"); 
b3.addActionListener(this); 
contentPane.add(b3); 
2. Define a button group 
ButtonGroup bg = new ButtonGroup(); 
bg.add(b1); 
bg.add(b2); 
bg.add(b3); 
// Create a text field and add it 
// to the content pane 
tf = new JTextField(5); 
contentPane.add(tf); 
} 
public void actionPerformed(ActionEvent ae) { 
tf.setText(ae.getActionCommand()); 
} 
}   
Limitations of AWT:


key: chroma:document
string_value:
} 
}   
Limitations of AWT: 
The AWT defines a basic set of controls, windows, and dialog boxes that support a usable, but limited graphical  
interface. One reason for the limited nature of the  AWT is that  it translates its various visual comp onents into 
their corresponding, platform -specific equivalents or peers. This means that the look and feel of a component is  
defined by the platform, not by java. Because the AWT components use native code resources, they are referred


key: chroma:document
string_value:
to as heavy weight. 
The use of native peers led to several problems. 
First, because of variations between operating systems, a component might look, or even act, differently on  
different platforms. This variability threatened java’s philosophy: write once, run anywhere. 
Second, the look and feel of each component was fixed and could not be changed. Third, the use of heavyweight


key: chroma:document
string_value:
components caused some frustrating restrictions. Due to these limitations Swing came and was integrated to java.  
Swing is built on the AWT. Two ke y Swing features are: Swing components are light weight, Swing supports a  
pluggable look and feel. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
JAVA PROGRAMMING Page


key: chroma:document
string_value:
in this issue 
MESSAGES 
FEATURED ARTICLES 
Cartographic animation: potential and research issues 
Dori.;; Karl 
Visua li.ling uncertain information 
Ala11 M. MacEachre11 
BOOK REVIEWS 
'vtaltman, A. 
Geologicnl Maps 
rt'Pll'1 tWf /Jy Nor111a11 Meek 
Maguire, D.J., M.F. Goodc hild , and D.W. Rhind (eds.) 
Gcograpilical i11for111atio11 systems: principles a11d applications 
n•·uicwed /Jy E. Ly1111 Usery 
CARTOGRAPHIC PERSPECTIVES ON THE NEWS 
LA ·DsA T Update 
RECENT PUBLICATIONS 
ANNOUNCEMENTS


key: chroma:document
string_value:
RECENT PUBLICATIONS 
ANNOUNCEMENTS 
CARTOGRAPHIC EVENTS 
NACIS NEWS 
NACIS XII PROGRAM AND CONFERENCE SCHEDULE 
1 
3 
10 
20 
21 
22 
23 
25 
26 
27 
31 
messages 
MESSAGE FROM NACIS XII 
PROGRAM CHAIR 
The Twelfth Annual Meeting of 
ACIS will be held October 14 - 17 
in St. Paul, Minnesota. As always 
the NACIS Confer ence will 
provide an open and professional 
atmosphere for the exchange of 
information and ideas for all who 
are interested in maps and cartog­
raphy. This year's program


key: chroma:document
string_value:
raphy. This year's program 
promises to be quite exciting. 
Highlights include addresses by 
the dean of American cartography, 
Arthur H. Robinson, and John 
Fraser Hart , former president of 
the Association of American 
Geog rapher s. 
The latest research develop­
ments in cartography, most 
notably in the areas of animated 
mapping, cognitive cartography, 
cartographic education, and map 
librarianship will be presented. 
Other sessions wi ll explore recent 
developments in softwa re and


key: chroma:document
string_value:
developments in softwa re and 
hardwar e for cartogra phic produc­
tion, federal mapping initiatives, 
and map library services and 
access. In addition, this year 
ACIS will be sponso ring a series 
of "hands-on" workshops on 
animation in cartog raphy and 
thematic map design using the PC.  cartograpllic perspectives 
bulletin of the 
North American Cartographic 
Information Society 
Editor: 
Sona Karentz Andrews 
Department of Geography 
208 Sabin Hall 
3414 N. Downer Avenue


key: chroma:document
string_value:
208 Sabin Hall 
3414 N. Downer Avenue 
Univ. of Wisconsin-Mihvaukee 
Milwaukee, WI 53211 
(414) 229-4872, 
e-mai l: sona@csd4.csd.uwm.edu. 
Assistant Editor 
David W. Tilton 
Department of Geography 
Univ. of Wisconsin-Milwaukee 
Milwaukee, WI 53211 
e-mail: 
tilton@convex.csd.uwm .edu. 
Copy editor 
Mark Zi111111ennan11 
ISSN 1048-9085 
C1rtographic Perspectives 
is published triannually 
Several field trips are also planned 
to familiari ze conference partici­
pants with the Twin Cities and


key: chroma:document
string_value:
pants with the Twin Cities and 
their cartographic centers. NACIS 
members should have recently 
received (or shortly will receive) 
information and a registration 
form for the meeting . We have 
also publi shed a preliminary 
confer ence schedule on pages 31 -
33 in this issue of CP. Do not 
hesitate to conta ct me if you have 
any questions or wish to receive 
additional inform ation and 
registration material. 
Jeffrey C. Patton 
Progrn111 Chair NACIS XTI 
Depart111e11t of Geogrnphy


key: chroma:document
string_value:
Depart111e11t of Geogrnphy 
University of North Carolina -
Greensboro 
Greensboro, NC 27412 
MESSAGE FROM THE EDITOR 
This issue mark s some changes for 
Cartographic Perspectives. Although 
the design and overa ll look of the 
publication remain the same (at 
least I hope it does when it goes to 
press), there have been som e 
significant changes. One of these 
is a change in editorship of the 
journal. David DiBiase, who had 
served as edi tor of CP since its first


key: chroma:document
string_value:
served as edi tor of CP since its first 
issue in March of 1989, comple ted 
his tenure as edi tor with issue No. 
12 (now know n as the "white 
issue"). I know I speak for every 
ACIS member in thanking Dave 
for making CP a journal of high 
quality in both its content and 
design. I personally app reciate his 
assistance in making the editorial 
transition go smoothly. Many of 
the contributions in this current 
issue were initiated, and in some 
cases already completed for me, by


key: chroma:document
string_value:
cases already completed for me, by 
Dave and his staff at Penn State. l 
can only hope that we can con­
tinue to produce a publication of 
equa l quality. 
Anothe r n otab le change marked 
by this issue is that instead of a 
sing le Featured Article, this issue 
has two Featured Articles. It is my 
hope , and that of the Editorial 
Board, that this precedent contin­
ues and that the cartographic 
community benefit from the 
increased scholarly contribution 
that CP can make. We wish to


key: chroma:document
string_value:
that CP can make. We wish to 
encourage submission of manu ­
scripts as well as all other items of 
interest for publication consider­
ation. Guidelines for papers and 
submissions appear at the end of 
this issue. 
We will be publishing CP three 
times per year . We have targeted a 
Fall, Winter , and Spring publica­
tion schedule . This issue (Number 
13, Fall 1992) has important 
information about NACIS XII. 
The meeting will be held in St. 
Paul, Minnesota from October 14 -


key: chroma:document
string_value:
Paul, Minnesota from October 14 -
17. ACIS members should have 
already received (or shor tly will 
receive) a confe rence schedu le 
program and registration forms, 
however, we have also included 
this information on pages 31 - 33 of 
this issue. You shou ld note that 
NACIS is conduc ting three work­
shops this year: Macintosh Anima­
tion, IBM Animation , and Map 
Product ion and Design These 
workshops will provide an excel­
lent oppor tunit y to get hand s-on


key: chroma:document
string_value:
lent oppor tunit y to get hand s-on 
exposure to some of the new and 
exciting techniques that are 
changi ng the way we conceive, 
store, and use maps. I urge 
anyone that can take advantage of 
these workshops to do so. 
Finally, I would like to encou r­
age each of you to let us know if 
you have suggestions for improv­
ing the quality and content of CP. 
Your input will be grea tly appreci­
ated and not ignored. I look 
forward to serving as editor and 
hope that the information we


key: chroma:document
string_value:
hope that the information we 
provide through CP is interesting, 
informative, and beneficial. 
Sona Karentz Andrews 
a passing 
On June 7, in Chicago, Illin ois, 
Barbara Bartz Petchenik died of 
cancer at the age of 52. Barbara 
was a member of ACIS and 
throughout her professional career 
Barbara integrated scholarly 
research interests in the nature of 
spatia l knm·vledge and map ping 
participation in comme rcial 
cartography. 
Barbara was a Senior Sales


key: chroma:document
string_value:
cartography. 
Barbara was a Senior Sales 
Representative for R.R. Donnelley 
Cartographic Serv ices, Mapping 
Services Division since 1975. From 
1970 to 1975 she was Cartographic 
Editor of the Atlas of Early Ameri­
can History, and from 1964 to 1970 
was Cartographic Editor and Staff 
Consultant in Research and Design 
for World Book £11cyclopedia. She 
co11ti1111ed 011 page 25  Number 13, Fall 1992 cartographic perspectives 3 
featured articles


key: chroma:document
string_value:
featured articles 
The potential of computer animation has been realized in many differ­
ent disciplines. Animation is also a powerful visualization tool for 
cartography; however , it has been neglected until recently. This paper 
portrays the need for animation in cartography in the light of the new 
approaches and methods in the sciences as well as in society. It dis­
cusses two main reasons for the lack of animation in cartography: the


key: chroma:document
string_value:
fixation on the printed map and the absence of a comprehensive ap­
proach to cartographic animation. Finally, a variety of issues for further 
research are proposed. 
C 
omputer animatio n has become an important visualization tool in 
recent years. Improvement s in computer hardware and software 
have made the widespread use of computer animation possible. The 
potential of computer animation has already been realized by different


key: chroma:document
string_value:
disciplines, for example the film industry, architecture, fashion design and 
the sciences. 
Computer animation also has many potential uses in cartography. It 
allows the creation of map sequences that can show spatial information 
dynamically. Animated map seque nces can depict time directly as a 
cartographic variable, they can depict information mapped in different 
ways; and they can present the map objects in a particular sequence. But


key: chroma:document
string_value:
do we rea lly need this sort of information display? Can animation really 
show more than the presentation forms we already have, or is animation 
only a toy for cartograp hers ? To answer this, vve need to examine the 
modern approaches and method s in the sciences as well as in society. 
Spatial science has changed from the analysis of static states to the study 
of processes. Researchers are no longer int erested in stud ying only static


key: chroma:document
string_value:
situatio ns; they are more concerned with changes and forces that induce 
or cause different states . Maps are an important tool for spa tial scientist s. 
The static map , how ever, is not able to show processes directly. Of course, 
cartographer s have developed different methods for depicting changes, 
but all of these methods reduce the dynamic aspects of reality to static 
states that can hardly show the changes that take place. Cartographic


key: chroma:document
string_value:
animation can do more by makin g the dynamic aspect of spatial changes 
visible to the map user. Processes become more transparent using anima­
tion for their visualization. 
Spatial science has also been influ enced by sys tem theory. Scientific 
investigat ions are no longer concerned only with isolated phenomena; 
they examine particularly the relationships and correlations of different 
phenomena. Scientists need a representation form that can show all the


key: chroma:document
string_value:
correlations. Static maps are not the best presentation form for displaying 
these relationship s. Often, maps are overloaded with information layers 
to show the man y correlations. ln an animated map sequence , map 
element s can be presented in different orders and combinations to make 
the spatial relation ships more apparent. The map user can be directed 
through the presented subject, and the correlations can be brought to the 
user's attention.


key: chroma:document
string_value:
user's attention. 
In the late 1980s, the sciences discovered scientific visualiza tion. It is 
used for data analysis to see patterns that either answer questions or that 
pose new and unexpected questions. Scientific visualization requir es 
compu ter animation, especially interactive animation, that can show the 
Cartographic 
Animation: 
Potential and 
Research 
Issues 
Doris Karl 
THE EEO FOR ANIMA TIO 
IN CARTOGRAPHY 
Doris Karl is a stude11t at the 
Freie Universitiit Berlin,


key: chroma:document
string_value:
Freie Universitiit Berlin, 
Fachricht1111g Knrtogrnplrie 
Amo-Hol:-Str.12, 0 -1000 
Berlin 41  4 cartographic perspectives Number 13, Fall 1992 
THE EM Pf CASIS 0 . THE 
TRADITIONAL PRl TED MAP-­
AN OBSTACLE TO CARTO­
GRAPHIC ANIMA TTO.\J 
data set in many different ways. The static map does not have this 
flexibility in information display; it can show information only in one 
\•;ay, so it is not a suitable instrument. 
Finally, one should look at the map users of the future - the children of


key: chroma:document
string_value:
today. This young generation is often called "the video generation" because 
it has grown up with video and computer games. These children are more 
accustomed to the computer than most adults; the interactivity and dynamic 
aspects of computer games are a matter of course for them. At some schools 
computers with interactive and dynamic programs are used as a didactic 
device lo rouse the students' interest. Jn this respect, cartographers have to


key: chroma:document
string_value:
ask if the traditional static map will be a good communication medium for 
these future map users or whether we should look for alternati\'e forms. 
Animated map sequences that can be controlled interactively are an alterna­
tive. 
It seems that cartographic animation is more than a nice toy and should 
be viewed as a powerful visualization tool for cartography that transcends 
the potential of the printed map. In spite of this potential, computer


key: chroma:document
string_value:
animation has been neglected in cartography until recently. Two main 
reasons for the absence of animation in cartography will be discussed in 
the following two sections. The first and most important reason is the 
fixation on the paper map; the second, resulting from the first, is the 
absence of a complete and systematic approach to cartographic animation. 
The traditional printed map is regarded by cartographers as an excellent


key: chroma:document
string_value:
form of presentation. IL is considered to be a product that has ilttained near 
perfection in a long evolutionary process. Many representational methods 
and techniques have been developed for topographic and thematic maps 
which, in general, enable the creation of good maps. Also, the map user is 
accustomed to the printed map and presumably he wants to have a "real" 
map, a paper map. Thus, one can say that the traditional printed map is a


key: chroma:document
string_value:
standard for both the mapmaker and the map user. 'ew techniques and 
methods, such as the use of computers in cartography, are always compared 
with and measured against the printed map and evaluated accordingly. This 
is perhaps especially true in Europe as Gillessen (1986, p.53), a German 
cartographer, states: 
"Thi! t?xcellence of maps produced in Central Europe placL"i high quality demands 
on altern,1tive mapping •.olutions and is therewith a standard of qua lit~ for all new


key: chroma:document
string_value:
de\'Clopmcnh m c.utography. [ ... ]One would go so for as to sa\ that the high 
standard of cartographv in Central Europe has hampered the development and the 
willingne-.s to accept the products of any new technology[ ... [ in cartography." 
This c.1uote illustrates the extent of Lhe fixation on the printed map. As 
a result of this thinking, other and perhaps better information displays 
are overlooked and the standard map is not placed in question.


key: chroma:document
string_value:
If one asks why the traditional map is used as the standard, many 
arguments are listed in its favor: 
- traditional maps are though to be more attractive than computer 
generated maps; 
- text, line and other symbols are though to be more "alive" on a tradi ­
tional map and not as artificial or synthetic in appearance; 
- it attracts the eye and keeps the map user's attention. 
All these arguments are based on the aesthetic imp ression of a map.


key: chroma:document
string_value:
The exterior appearance is a very important criterion in its evaluation. 
The importance of beauty in a map can also be found in a common 
definition of cartography as the art and science of map making. But, can 
the aesthetic value of a map continue to be one of the most important  Number 13, Fall 1992 cartographic perspectives 5 
criteria for judging the quality of a map? "'vtaps are the carrier'> of informa­
tion in the proces s of communication and should they not be e\'aluated in


key: chroma:document
string_value:
this light as well? So the question to ask is whether the traditional map is 
really the best presentation form. 
The use of computers in cartography offers new forms of information 
display. Howe, ·er, because we are still fixated on the traditional map, we 
overlook this potential and use the computers predominantly to mimic 
manual methods. 
If one looks more closely at the application of computers in cartogra­
phy, one sees that they have been extensively used to shorten time and


key: chroma:document
string_value:
work intensive tasks. Data processing and drafting have been automated 
and interactive computer systems now facilitate the map de!:iign process . 
Languages like Post!:icript allow the direct transfer of maps between the 
display and the image setter. The main efforts have been directed in 
making computer-created maps as good as the traditional map. 
The fixation on the printed map ''"'ithin computer cartography can be 
further demonstrated with regard to the German ATKIS project (Autho ­


key: chroma:document
string_value:
rized Topographic Cartographic Information System) that will contain the 
data of the topographic maps of Germany in digital form. The purpose of 
ATKJS is to make possible the digital production of topographic maps that 
can be updated quickly and easily, and the creation of special purpose 
maps of single topics. The maps that are generated from ATKIS are the 
traditional paper maps. ew forms of information display are not a goal


key: chroma:document
string_value:
of A TKlS. Harbeck (1989, p.98), one of the designers of A TKIS, states in 
this context: 
"Without doubt at the end of the digital topographi c mform,11ton sy .. tem tht.!re b the 
cartogrnph ic output the map. \\ hether this product i., on the compuh:r display or a 
printed map depend., on the user. But surely it can be .,tah:d that th!.! color printed 
m,1p will continue to h.we its importance - perhaps en•n gain in import,1nce as a 
commud1t\"


key: chroma:document
string_value:
commud1t\" 
The fixation on the traditional map and on paper as the primary output 
medium is strongly present within cartography. Jf we do not overcome 
this fixation , we may ignore new forms of information display and we 
may not reali7e their potential. 
As a result of the fixation on the printed map, other forms of information 
display have been overlooked and too little research has been done in this 
area. This is true for cartographic animation .


key: chroma:document
string_value:
area. This is true for cartographic animation . 
The potential of animation for cartography was initially described by 
Thrower (1961) and by Cornwell and Robinson (1966). l\evertheless, only a 
small amount of work has been done in this field. In the 1970s, when 
computer animation became available, indi\'idual cartographers used ani­
mation predominantly to show spatial changes over time. The efforts were 
focused on producing animated map sequences for special issues like the


key: chroma:document
string_value:
grO\vth of a city (Tobler 1970), traffic accidents (\1oellering 1976), population 
gro\.vth in urban regions (Rase 1974) and animation of three dimensional 
objects (Moellering 1980). Most of the 1980s saw no further work in carto­
graphic animation. ot until the end of the 1980s was cartographic anima­
tion rediscovered when cartographers realized the potential of animation for 
the depiction and exploration of spatial and statistical relationships and


key: chroma:document
string_value:
patterns. Some authors again called attention to the potential of cartographic 
animation (Campbell and Egbert1990),and a few new animation techniques 
were suggested for the analysis of spatio-temporal data (Monmonier 1989 
and 1990) and the study of geoscientific processes (OiBiase et. al. 1991). In 
THE ABSENCE OF A COM­
PREHE SIVE APPROACH U\' 
CARTOGRAPl IlC A IMA­
TlON-- ANOTHER OBSTACLE  6 cartographic perspectives Number 13, Fall 1992 
REQUIRED RESEARCH


key: chroma:document
string_value:
REQUIRED RESEARCH 
addition, a program for animating choropleth maps was created (MacChoro 
II 1989). 
All these works employed the application of cartographic animation. 
Most of them exclusively deal with the reali7ation of an animated map 
sequence for one special issue. Only the later works pick up a more 
common and extensive attempt at the cartographic application of 
animation. 
These are important contributions, but they arc individual solutions to


key: chroma:document
string_value:
individual problems. A comprehensive and systematic approach to the 
use of animation in cartography does not exist. Ytany essential issues 
have not been examined. Therefore, basic kno'vvledge about design, 
perception and production of animated map sequences is not available. 
There are no principles that tell cartographers hO\'\' to make and design 
animated maps. Without extensive knowledge of the creation of animated


key: chroma:document
string_value:
maps, cartographic animation cannot be applied widely and efficiently; it 
can be used only sporadically because too many design issues will need to 
be worked out for each single application. If the influence of animation in 
cartography is to increase, we must expand our knowledge about carto­
graphic animation and develop a comprehensive and systematic approach 
to it. This will require intensive research in different areas. 
Future research in cartographic animation has to deal with a


key: chroma:document
string_value:
variety of questions. The following issues must be examined: 
Definition of cartographic animation 
The absence of a systematic approach to cartographic animation becomes 
particularly evident when we arrive at the question: What is cartographic 
animation? There docs not seem to be a consensus. Can animation be used 
only for map sequences that depict changes over time, or can it also be used 
for map sequences without a time element that show changes in the presen­


key: chroma:document
string_value:
tation form orcreatea map in a sequential form? Can animation be used only 
for complex map c;,equences created by a special animation technique, or is a 
simple "slide show" abo an animation? What are the characteristics of 
animation and how can it be defined? This should be the first question to be 
examined. 
Cartographic applications 
Most of the work in cartographic animation has been done in this area. 
However, the issue has not been handled in its entirety. Further work


key: chroma:document
string_value:
must investigate which other or new forms of animation are possible and 
whether they are useful. For this we have to examine different map types 
and their possibilities for cartographic animation. Perhaps we \vill find 
new forms of animated maps. A great deal of experimentation must be 
done within this issue. 
Graphic design of animated maps 
Animated map sequences are different from the maps \\'e ordinarily use. 
They are predominantly displayed ona CRT, are not static but dynamic, and


key: chroma:document
string_value:
are often shown very quickly. We must examine how such maps must be 
designed. Some research on the design of maps on the computer display 
already exists and we can also look to television to find some ideas about the 
layout of pictures and the use of color. The next question is: Must we consider 
the dynamic aspect of map sequences when \Ne symbolize single maps? For 
example, how do weselectdifferentdensities in an animated choroplethrnap


key: chroma:document
string_value:
sequence, or what about labeling isolines in an animated map? And finally, 
there is the aspect of map complexity. In an animated map sequence the user  Number 13, Fall 1992 cartograplzic perspectives 7 
will see a single map for only a short time, so the map cannot be too complex. 
But how complt.?'\ can the map be? These issues must be tested. 
Legend design 
Animated map sequences are different than static maps, therefore, the


key: chroma:document
string_value:
legend, the explanation of a map, should be different in an animated map. 
How must it be designed? Multimedia offer the possibility to combine 
animation ·with sound. Therefore, the legend can be an audio explanation. 
But is an audio explanation sufficient for the complete understanding of 
the animation, or must it be completed by a visual legend? If we need a 
graphical legend, we have to think about the design. Surely, it would


key: chroma:document
string_value:
have to be a dynamic legend; ho·wever, it also must be readable for the 
user. 
Speed of animated sequences 
We know that in computer animation 20-25 pictures ph second are 
required for the perception of a continuous movement or change. But we 
do not know how fast an animated sequence created for the depiction of 
relationships must be, so that the user can recognize the objects and 
relationships of the map sequence. This is a problem especially for


key: chroma:document
string_value:
animation on video because the sequences cannot be controlled by the 
user and the speed cannot be changed. 
Creation and control of an animated map seq uence 
Cartographic animation will become a widespread visualization tool only 
if the creation of animated map sequences is not too difficult. A user 
interface that allows the user to produce animations easily has to be 
designed. For thb, useful cartographic animation functions such as


key: chroma:document
string_value:
changing the view-point or moving an object must be defined and ar­
ranged in menus. With these various animation operations, the user has 
the potential to compose complex animation sequences. Ideas for this 
have been suggested by Monmonier (1989). A second and very important 
point is the interactivity of an animation. If animation is to be more than 
just a film, it must have the possibility of interaction. Animation systems


key: chroma:document
string_value:
should have the minimum ability to stop and restart the sequence and to 
change the speed. The animation for graphical exploration of a data set 
must have a \'ar1ety of controlling functions. We have to think about the 
whole range of interactions that cartographic animation requires. 
Animation techniques 
We also need more knowledge of the different animation techniques and 
for what types of animation they work best. Our experience in this area is


key: chroma:document
string_value:
limited because only a few cartographic animations ha,·e been realized. 
Gersmehl (1990) has examined this issue and describes nine animation 
metaphors and their use. Further work should expand this subject. 
Cartographic animation requires a variety of research on design, 
creation, and use of animated map sequences. Because of the potential of 
animation for cartography, more attention to research is required in this 
field.


key: chroma:document
string_value:
field. 
The potential of computer animation has already been realized by differ­
ent disciplines. It can also be used for cartography as a powerful visual­
ization tool that transcends the potential of the printed map. With anima­
tion, dynamic and interactive map sequences can be created that show 
changes over time or can be used to depict or explore spatial and statisti­
cal relationships. 
CO CLUSIO>J  8 cartographic perspectives Number 13, Fall 1992 
REFERE. CES


key: chroma:document
string_value:
REFERE. CES 
e\'\' approaches and methods in spatial sciences such as the strong 
emphasis on examining processes and correlations and the use of scientific 
visualization require a more dynamic and user-oriented form of informa­
tion display that is not possible ,,·ith the printed map. Also, the map users 
of the future, the children of today, who are more accustomed to interac­
tive computers, will probably ask for more dynamic and interactive forms 
of information display.


key: chroma:document
string_value:
of information display. 
In spite of the need for computer animation in cartography, it has been 
neglected until recently. There arc two main reasons for this. The first is 
the fixation on the traditional printed map that is strongly present within 
cartography. As a result of this thinking, other and perhaps better forms 
of information display such as computer animation ha\'e been overlooked. 
The second reason is the absence of a comprehensive approach to carto­


key: chroma:document
string_value:
graphic animation. Because of the fixation on the traditional map, too 
little research has been done on cartographic animation. Only some 
research has dealt with the application of animation in cartography, and 
many essential issues ha\'e not been examined. Therefore, basic knowl­
edge about design, perception and creation of animated map sequences is 
not a\·ailable. If the potential for animation in cartography is to be real­


key: chroma:document
string_value:
ized, we need a comprehensive and systematic approach to cartographic 
animation. This"' ill require intem.ive research focusing on the definition, 
application, design, creation and control of animated map <>equences as 
well as on animation techniques and their uses. 
Campbell, C. S. and Egbert, S. L. 1990. Animated cartography: thirty 
years of scratching the surface. Cartogmphicn. 27 (2):24-46. 
Cornwell, B. and Robinson, A. 1966. Possibilities for computer ani­


key: chroma:document
string_value:
mated films in cartography. Cartographic foumal. 3(2):79-82. 
DiBiase, D., MacEachren, A. M., Krygier, J., Reeves, C. and 
Brenner A. 1991. Animated cartographic visualization in earth 
system science. Proceedi11gs of the 15th !CA Co11fem1ce, 
Bornemouth:223-232. 
Gersmehl, P. 1990. Choosing tools: 'ine metaphors for map 
animation. Cartographic Perspectrues. 5(Spring):3-17. 
Gillessen, W. 1986. Automatische Herstellung von Schummerung und


key: chroma:document
string_value:
deren Nutzen flir die Umweltplammg. Digita/e Tec/1110/ogie in der 
Kartograpltie. Wiener Symposium 1986:52-62. 
Harbeck, R. 1989. Digitale und analoge Technologien in der 
topographischen Landeskartographie. Wiener Schrifft•11 :11r 
Geographic 1111d Knrtogmphie. 2:89-100. 
Moellering, H. 1976. The potential uses of computer animated film in the 
analysis of geographical patterns of traffic crashes. Accide11t A11alysis a11d 
Prez•ention. 8:215-227.


key: chroma:document
string_value:
Prez•ention. 8:215-227. 
Moellering, H. 1980. The real time animation of three-dimensional 
maps. The A111crica11 Cartographer. 7:67-75.  Number 13, Fall 1992 cartographic perspectives 9 
Mon monier, M. 1989. Graphic scripts for the sequenced visualization of 
geographic data. Proceedings of GJS/Ll5'89:381-389. 
Momnonier, M. 1990. Strategies for the visualization of geographic time­
series data. Cartogrnphicn. 27(1):30 -45. 
MacChoro II with Map Animation. 1989. Omaha, NE: Image


key: chroma:document
string_value:
Mapping Systems. 
Rase, W. D. 1974. Kartographische Darstellung Dynamischer 
Vorgange in computergenerierten Filmen. Kartogrnphische 
Nac/1ricl1te11. 6,:210-215. 
Thrower, N. 1961. Animated cartography in the United States. l11tema­
tio11a/ Year/look of Cartography. 1:20-29. 
Tobler, W. 1970. A computer movie simulating urban growth in the 
Detroit region. Eco110111ic Geography. 46:234-240. 
El potencial de animaci6n par computadoras ha sido descubierto en muchas


key: chroma:document
string_value:
disciplinas diferentes. La animaci6n es tambien un instrumento de 
visualizacion poderoso para la cartograffa; sin embargo, hasta hace poco es ta 
ha sido descuidada. Este articu lo descr ibe la necesidad de la animaci6 n en la 
cartograffa a raiz de las nuevosenfoques y metodos tan to en las cienciascomo 
en la sociedad. Se discuten dos razones principales que causan la falta de 
animaci6n en la cartografia: la fijaci6n en el ma pa impreso y la ausencia de un


key: chroma:document
string_value:
enfoquecomprensi\'O hacia la animaci6n cartografica. Finalmente,se propane 
una variedad de temas para mas investigaci6n. 
RESUME~  10 cartographic perspectives Number 13, Fall 1992 
Alan M. MacEachren 
Aln11 M. MncEnchre11 is n 
Profe:;sor i11 the Department of 
Gcogrnphy, 302 Wn/ka B11ildi11g, The 
Pc1111sylm11in Stntc U11hicrsity, 
U111per-.1ftf Pnrk, PA 16802. 
c-mnil: \JYB'a PSUVM.PSU.EOU 
When n GJS is used to compile, 
nnalyz.e, nnd display infor111n­
tio11, the chance for 111zaccept­


key: chroma:document
string_value:
tio11, the chance for 111zaccept­
able or variable data quality is 
high due to the merging of 
11111/tiple data layers. 
Visualizing Uncertain Information 
When a GJS is used to drive map-based visualization, exploration of 
potential relationships takes precedence over presentation of facts. In 
these early stages of scientific analysis or policy formulation, providing 
a way for analysts to assess uncertainty in the data they are exploring is


key: chroma:document
string_value:
critical to the perspectives they form and the approaches they decide to 
pursue. As a basis from which to develop methods for visualizing 
uncertain information , this paper addresses the difference between data 
quality and uncertainty , the application of Berlin's graphic variables to 
the representation of uncertainty, conceptual models of spatial uncer­
tainty as they relate to kinds of cartographic symbolization, and catego­


key: chroma:document
string_value:
ries of user interfaces suited to presenting data and uncertainty about 
that data. Also touched on is the issue of how we might evaluate our 
attempts to depict uncertain information on maps. 
U ncertainty i<. a critical issue in geograp hic \'isualization due to the 
tende ncy of most people to treat both maps and computers as 
somehow less fallible than the human s who make deci!>ions based on 
them. When a G!S is uc;ed to compile, analy;'e, and disp lay information,


key: chroma:document
string_value:
the chance for una cceptab le or variable data qualit y is high due to the 
merging of multiple data layers. Together with these data quality issues, 
the flexibility of data manipulation that makes GIS so powerful can lead to 
considerable uncertainty in map displays produced at various stages of 
G!S ana lysi .... This paper addresses a variety of conceptua l issues underly­
ing de\'elopment of \'i<;ualization tools that a llow analyo.,t<; to take this


key: chroma:document
string_value:
uncertainty into account in their research and policy formulation acti,·i­
ties. 
There io., a o.,trong tradition in cartography of attention to data quality. 
Only rudimentary steps, however, have been mad e thu s far to deal \·\'ith 
the comple x issues of \'isualizing data quality for multidimensional data 
displays used in image analysis and GIS application<;. The importance of 
this topic is evidenced by the decision of the Nationa l Cen ter for Geo­


key: chroma:document
string_value:
gra phic Information and Analysis(. CGIA) to make visualiza tion of data 
quality the first visualization initiati ve undertak en by the center. 
Kate Beard and Barbara Buttenfield (1991 ), presenting the CGIA 
position, indicate that quality of spatia l information "rela tes to accuracy, 
erro r, consistency, and reliability." These aspects of quality are meant to 
apply to more than locatio nal verity. It is usefu l to begin considera tion of


key: chroma:document
string_value:
qua!it\ i<.sues with the framework of the Proposed Digital Cartographic 
Data Standard (Vloellerin g, et. al., 1988), incorporating locational accu-
t Thl' idl'.1s prescntl'<.i here were -.tJmulatL'<i by an im it.1tion to p.1rliLip.1tl' in the \.ational 
Ccntt·r tor Gl·o~r.1ph11: Information and Analy~is SpL'<:i.1list'-. \kt•tm~ on V1su,11i/ation of 
Data Qu,1lity, lmll,1ti\ c 7. The p.1~r beg.in ,1-. a "worJ..mg p.1pL·r·· (Visti.1li/ation of Data


key: chroma:document
string_value:
Unlcrt.1mt}: Rt•pre-.l·ntation.111-.sue~) th,1t w,i-. cin:ul,1tl>d onlv to the 25 particip.1nts of the 
mcl'tmg. The p.1p<.'r pr .. ·-.cntt•d hen••" a rl'\'iswn ,rnd l''\p,111,ion of th.1t worJ.. in ~ p.1pcr 
that bt.>nt.>htt.>d from n~.iction of other participant-. to tlw initial idt.>.1-. a-. well .is from 
discussion on rL•latL'd issul>s r,w.cd during thl' llll'l'ting. I gra tl'lully .Kknowll>dge the 
invitation and tr.wet support provided bv the 1'.CGI I\ through tlwir 1\a tiona l Science


key: chroma:document
string_value:
Foundat ion Cr.int# 5F.5-lll'-1U917.  Number 13, Fall 1992 cartographic perspectives 11 
racy, attribute accuracy , logical consistency (i.e., a data structure whose 
topology makes sense), completeness (comprehensive data and systematic 
ways of dealing with missing values) and finally lineage. 
The above quality categories are important, but to use a GIS effectively 
for either scientific inquiry or policy formulation, the scope must be


key: chroma:document
string_value:
broadened. In risk assessment circles, the term uncertainty has gained 
some acceptance and I suggest that we might be better off if we follow 
their lead (Morgan and Henrion, 1990; Rejeski and Kapuscinski, 1990). 
Analysts never know the precise amount of error in any particular data 
object - otherwise they '"'ould correct the error. They are more or less 
uncertain about the available characterization of particular data objects.


key: chroma:document
string_value:
From this perspecti\ 'e alone, the term uncertainty might be a better 
description of what the NCGIA (and many past cartographers) ha,·e been 
calling quality. In addition, however, uncertainty includes something of 
importance beyond the narrow definition of quality that the CGIA 
initiative seems to be directed toward. A brief example will illustrate the 
difference between a focus on quality and on uncertainty and why it is the 
latter that should guide our efforts.


key: chroma:document
string_value:
latter that should guide our efforts. 
Imagine a single census block in a city. You have sent an enumerator 
out to lake the census. In this particular case, the response rate is 90%. In 
data quality terms , we might say that our population and income informa­
tion for this block is of less than perfect quality because of the lack of 
"completeness" in the data. Further, there may be "attribute inaccuracy" 
in the data collected due to misunderstanding of the survey questions or


key: chroma:document
string_value:
deliberate misinformation about items such as income or education, or 
"spatial inaccuracy" due to address coding errors by the census enumera­
tor. If, in the adjacent census block we somehow achieved 100o/c participa­
tion in the census, everyone understood the questions and gave truthful 
responses, and the enumerator made no mistakes, a dnta quality assess­
ment would label that unit's data as perfect. What we will be leaving out


key: chroma:document
string_value:
of this assessment is the issue of variability (over both space and time and 
within categories). This latter point is made quite forcefully by Langford 
and Unwin (1991) who argue that, for the mapping of most socio-eco­
nomic phenomena, a choropleth map of aggregated data for enumeration 
units is "a poor choice" due to extreme within-unit variability that is the 
rule rather than the exception. 
ln addition to ,·ariability due to spatial aggregation, attribute aggrega­


key: chroma:document
string_value:
tion add ... additional variability, and therefore, uncertainty. All data are 
categori?ed. Even when individual measurements are retained in the 
database, categories will be implicitly defined by the mathematical 
precision of individual measurements. For example, temperatures might 
be measured to the nearest degree. Most data in a GlS, however, will be 
grouped into much broader categories (e.g., soil classifications, income


key: chroma:document
string_value:
brackets, whether a house has indoor plumbing or not, etc.). In all of these 
cases, the categorization introduces uncertainty even when the data are of 
high quality. 
We can only be certain that a particular location - a particular data 
object - fits somewhere \.Vithin the attribute bounds of the categories and 
the spatial bounds of the enumeration unit to which it is aggregated. The 
aggregate totals for our census blocks disguise the variability within those


key: chroma:document
string_value:
census blocks. Our level of uncertainty about map locations will be a 
function not only of the quality of values (as defined above), but of 
variance around the mean values we typically use to represent the unit, 
and of spatial variability across the unit. 
In addition to spatial and attribute data quality and variability, a final 
uncertainty to be dealt with is temporal. The data, even if accurate and 
We can only be certain that a 
particular locatio11 - a particu­


key: chroma:document
string_value:
particular locatio11 - a particu­
lar data object-fits some­
where ·within tlze attribute 
bo!lnds of the categories and the 
spatial bou11ds of the enumera­
tion 1111it to ·which it is aggre­
gated.  12 cartographic perspectives Number 13, Fall 1992 
c 
0 
'1l 
u 
0 
.....J 
"' ~ :; 
.!::; 
CJ 
E 
i= 
Accuracy 
position oi 
vegetation 
boundaries 
total HIV 
positive 
cases/county 
date of the 
last glacier 
Precision 
state birth 
rate 
soil order 
mean 
monthly 
rainfall


key: chroma:document
string_value:
rate 
soil order 
mean 
monthly 
rainfall 
Fsure 1: E.\11111/'b llf li•pic' J•>r irhic/1 
/ocnthm11/, 11ttril>t1t1 .1111d l1'111/>0rt1/ ncrnrail( 1111d 
cntegorirnl J1rt'ci'11111 Cllllfr1/1111t• to 1111u·rt11i11ty. 
REPRESE TATIO. AL ISSUES 
homogeneous, represent a snapshot at one point in time. Our uncertainty 
about their veracity will increase due to uncertainty about temporal 
information, resolution with \\rhich that temporal information is specified,


key: chroma:document
string_value:
and the difference in time between data collection and data use. The 
temporally induced uncertainty will vary with the kind of phenomena 
being represented. 
When we use a GIS, the important issue is the quality of the decisions 
we make - about a research course to follow, an urban development 
policy to impose , or an environmental regulation to enforce. Whether we 
use the term data quality or data uncertainty matters less than whether the


key: chroma:document
string_value:
tool we give the GJS user is adequate for deciding how much faith to put 
in any particular piece of information extracted from the database. 
We can have highly accurate data while still having imprcrne data. This 
lack of precision is at least as important an issue as a lack of accuracy. 
Precision here refers, not only to the specificity of data values in terms of 
significant digits , but in a more general sense to "the degree of refinement


key: chroma:document
string_value:
\·vith which an operation is performed or a measurement taken" (Weli:.ter'.;; 
N<:w Collegwte Dicticman1, 1974). In this sense it is an assessment of the 
resolution of categories by which a phenomenon is represented (i.e., 
categorical precision). Although, mathematically, a population density of 
165.3-1 persons / sq. mi. would be considered precise, spatially it is not if 
that county is 1000 sq. mi. in size. Abo, the map representation of the


key: chroma:document
string_value:
attribute (population density) becomes categorically imprecise when the 
data are aggregated into an attribute category ranging from 50-500 per­
sons/ sq. mi. Figure 1 provides examples of topics for which map uncer­
tainty is due primarily to accuracy or categorical precision. 
As has been pointed out elsewhere , the term r·i~11ali:ntio11 has a number of 
definitions (MacEachren and Ganter, 1990; \itacEachren, et. al., 1992).


key: chroma:document
string_value:
Here it will be considered a human ability to develop mental image, 
(often of relationships that have no visible form) together ·with the use of 
tools that can facilitate and augment this ability. Successful visualization 
tools allo"v our visual and cognitive processes to almost automatically 
focus on the patterns depicted rather than on mentally generating those 
patterns. 
Following from the above conception of visualization, a research


key: chroma:document
string_value:
agenda to address visualizing uncertain information should include 
attention to the cognitive issues of what it means to understand attribute, 
spatial, and temporal uncertainty and the implications of this understand­
ing for decision making and for symbolizing and categorizing uncertainty. 
At the most basic level, uncertainty can be divided into two components 
that might require different visualization strategies: \'isualizing accuracy


key: chroma:document
string_value:
and visualizing precision. In addition, attention should be directed toward 
the methodological, technical, and ergonomic issue:; of generating dis­
plays and creating interfaces that work. It is, of course, also essential to 
develop methods for assessing and measuring uncertainty before we can 
represent it. This latter topic, howe\'er , will not be addressed here. 
Varied goals and needs - categories of interaction with data


key: chroma:document
string_value:
If we continue to attack cartographic questions with our communication 
model \'isors on, \.Ve will fail to take advantage of the power that GIS and 
visualization tools provide. The search for the "optimal" data quality 
visualization tool might prove as fruitless as the search for the optimal 
graduated circle map. lt is critical to recogni ze that GIS and visualization 
tools attached to them are used for a range of problem types that may


key: chroma:document
string_value:
have quite different visualization needs in general, and visualization  Number 13, Fall 1992 cartographic perspectives 13 
quality needs specifically. David 
DiBiasc (1990) recently developed 
a graphic model of the range of 
uses to which graphics might be 
put in scientific research (fig. 2). I 
believe that his basic model is 
relevant, not only to science, but to 
applied spa tial decision making 
with a GIS. 
As we begin to consider the 
visualization of w1certainty , we


key: chroma:document
string_value:
visualization of w1certainty , we 
need to be cognizant of this range 
of visualization goals and environ­
ments and the varying information 
requirement s it implies. The kind 
of uncertainty and the tools used 
to visualize it are likely to vary 
across this range, from the use of 
GIS by an EPA scientist exploring 
the spatial distribution of a pollut­
ant to the use of GIS driven map 
displays by policy makers trying to 
decide which industrie s to add to


key: chroma:document
string_value:
decide which industrie s to add to 
the list of those regulated for toxic 
waste emission. 
Graphics variables 
Because few GIS users are trained in cartographic symbolization and 
design, it will be necessary to create expert systems that logically translate 
information into graphic displays. Jacques Bertin, the French cartogra­
pher I graphic theorist , has had a tremendous impact on our approach to 
this problem. The Robinson et. al., text (1984) that is used by 50% of


key: chroma:document
string_value:
introductory cartography courses in the country (Fryman, 1990) cites 
Bertin's basic system of graphic variables (location , size, value, texture , 
color, orientation, and shape) as the fundamental units we can use to build 
a map image. Monrnonier and Johnson 's (1990) recent guide to map 
design for environmental GIS also presents Bertin's system as an impor­
tant organizing concept for well-designed maps. Weibel and Buttenfield


key: chroma:document
string_value:
(1988), in a paper on map design for GIS, and Muller and Zeshen (1990), in 
a paper on expert systems for map design, accept this sys tem as a base to 
build from in designing expert systems for map symbolization. 
An important representation issue for visualization of uncertainty, 
therefore , is how Bertin's graphic variables (with possible additions or 
modifications) might be logically matched with different kinds of data


key: chroma:document
string_value:
uncertainty. A critical distinction , of course, is that between ordered and 
differential graphic variables which can be logically associated with 
ordered/numerical and nominal/categorical differences among phenom­
ena. Of Bertin's original graphic variables, size and value are most appro­
priate for depicting uncertainty in numerical information, while color 
(hue), shape, and perhaps orientation can be used for uncertainty in


key: chroma:document
string_value:
nominal information. Texture, although it has an order, might work best 
in a binary classification of "certain enough" and "not certain enough" 
that cou ld be used for either nominal or numerical data. 
Although Bertin ignored it, the graphic variable that is arguably the 
most logical one to use for depicting uncertainty is color saturation. 
Saturation, added to the list of variables by Morrison (1974), is sometimes 
VISUAL 
COMMUNICATION 
Synthesis 
PUBLIC REALM


key: chroma:document
string_value:
VISUAL 
COMMUNICATION 
Synthesis 
PUBLIC REALM 
Figun· 2: Tin• range ofl11nctio11s for 
maps i11 spa/ml analysis (from D1B1a'>c. 
1990, '"l'l'(id11c(•d l>y f1Crmissio11 of Earth 
and M111era/ Scie11ces).  14 cartographic perspectives Number 13, Fall 1992 
F('?ure 3: A catni11 (U.S. - Cmrndn) n11d 
n11 uncertni11 (Iraq - Kuwait) border. 
Figure 4: Depictio11 of a risk w11e aro1111d 
n 11uclear power pla11/ ns certain versus 
1111certai11.


key: chroma:document
string_value:
1111certai11. 
referred to as color purity. Saturation could be varied from pure hues for 
very certain information to unsaturated (grey) hues for uncertain informa­
tion. Anot her variable, beyond Bertin's original seven, that seems quite 
promising as an uncertainty visualization tool is "focus."2 Presenting data 
"out of focus" (as you would see it with an out-of-focus camera), or 
simply at lower spat ial resolution , might be an ideal way to depict uncer­
tainty.


key: chroma:document
string_value:
tainty. 
Symbo l focus can be manipulated in at least four \'l'ays: 
Contour crispness- The most obvious way to apply focus is to vary 
the "crispness" or "funyness" of symbol contours (edges). A certain 
boundary (e.g., the U.S. - Canada border) might be depicted with a 
sharp, narrow line, while an uncertain boundary (e.g., that between 
Kuwait and Iraq) might be portrayed with a broad fuzzy line that fades 
from the center toward the background (fig. 3). Similar "out-of-focus"


key: chroma:document
string_value:
symbols could be used to represent certain or uncertain location of point 
features, and an area may be depicted as not bounded at all, but as 
fading in a continuous fashion from core to periphery (fig. 4). 
Fill clarity- While contour crispness intuitively suggests uncertainty in 
position, the crispness of elements making up interior fills for an other­
wise precisely delineated area can be logically associated with attribute


key: chroma:document
string_value:
uncertainty. A sharp, distinct pattern, for example, might be used to 
indicate certaint y while a less defined pattern might indicate uncertainty 
(fig. 5). 
Fog- The transparency of the "atmosphere" thnt an analyst views a 
map through can be controlled on some computer display devices. lt is 
possible to create what, in effect, looks like a fog passing between the 
ana lyst and the map - the thicker the fog, the more uncertain that part of 
the map (fig. 6).3


key: chroma:document
string_value:
the map (fig. 6).3 
Resolution -Often maps are produced in which attribute data, geo­
graphic position , and temporal position are depicted with very different 
resolutions. One method of communicating uncertainty would be to 
adjust the resolution of geographic detail so that it corresponds to that of 
attributes or time (e.g., adjust resolution with which coastlines are de­
picted on a wor ld map to correspond to the resolution of thematic infor­
mation depicted) (fig. 7).


key: chroma:document
string_value:
mation depicted) (fig. 7). 
Linking visualization tools to models of uncertainty 
Different uncertainty visualization issues will arise when dealing with 
different kinds of data (e.g., qualitative data on land use /la nd cover 
versus quantitative data from the census). When data are quantities 
aggregated to units such as counties, we should consider the spatial 
characteristics of the phenomena represented by these quantities as we


key: chroma:document
string_value:
select symbolization methods to depict the uncertainty about them. One 
continuum of spatia l characteristics that can be ident ified is that from 
discrete (spatially fragmented) to continuous (spatially comprehensive) 
phenomena (Hsu, 1979). A second continuum relates to the character of 
variation in the phenomenon across space. Some phenomena (e.g., tax 
rates) can vary quite abruptly as political boundaries are crossed, while


key: chroma:document
string_value:
others (e.g., ga!Jons of ground water pumped for irrigation per county) 
can exhibit a relatively smooth variation quite independent of the units to 
which data are aggregated. MacEachren and DiBiase (1991) recently 
' This variable appears to have been orig in,1lly suggested bv Dadd Woodward in a 
sem inar at Wisconsin (D. Di Biase and j . Krygier , personal commumcation). 
' TI1is idea was offered by Michael Goodch ild dur ing the '\JCGIA Visualization of Data


key: chroma:document
string_value:
Quality Specia list Meeting.  Number 13, Fall 1992 cartographic perspectives 15 
proposed a series of graphic data 
models that represent locations in 
this continuity-abruptness phe­
nomena space (fig. 8). These 
graphil. data models correspond to 
a range of two dimensional 
symboli/ation methods, which 
include standard forms such as 
dot, choropleth, isopleth, and 
graduated symbol, along with 
some hybrid techniques designed 
to deal with the midpoints on the


key: chroma:document
string_value:
to deal with the midpoints on the 
phenomena space axes (fig. 9). 
Three research questions suggest 
themseh·es here: Is it safe to 
assume that the spatial characteris­
tics of uncertainty •.vill mimic those 
of the phenomena that uncertainty 
is being estimated for? Do specific 
symbolization methods actually 
communicate the particular spatial 
characterbtics that we as cartogra­
phers associate them with (e.g., is a 
layer tinted isarithmic map 
depicting uncertainty in air


key: chroma:document
string_value:
depicting uncertainty in air 
pollution estimates interpreted as a 
smooth continuous surface or as 
discrete uncertainty regions)? 
What approach should be followed 
when a data set has multiple kinds 
of uncertainty associated with it 
and the spatial characteristics of 
that uncertainty vary? 
f\~ure 5: Ct'Tlt1h11111tl 1111ct'Tlm11 depiction of land C<>l'cr fy;oe. 
F1g11r1• t>: Mnp 11/ flit' ecologicnl risk due f11 t•:onr. On tlie ldt , 1.'<1/111e:; dq11ct 11 compo,;ite risk


key: chroma:document
string_value:
i111fr.t n11d 1>11 //J1• right, Ille 1111certni11ty 111 t/1111 index is oPcr/nyt'd 11.; 11 "f11g" of rnryml'( t/1ickne~s User interfaces - How to merge data 
and uncertainty representations 
Beyond the basic issue of how to 
corrcsp<.md111g to 1'11YJ/ing degrees of 11ncertnint.11. 
represent uncertainty is the question of how and when to present the 
representation. This is complicated by the likelihood that GIS representa­


key: chroma:document
string_value:
tions are often products of a combination of measured and model-derived 
multivariate data. There seem to be three choices that could be used 
separnte ly or in combination: 
map pairs in which a data map is depicted side-by-side with a map of 
uncertainty about that data (fig. 10); 
seq11e11tinl presentation in which a user might be warned about uncer­
tainty with an initial map ·which is followed by a map of the data (fig. 11),


key: chroma:document
string_value:
(or interactive tools that allow toggling between the data and the uncer­
tainty representations); 
bi-variate maps in which both the data of interest and the uncertainty 
estimate are incorporated in the same map (fig. 12). 
Most attempts thus far to graph ically depict uncertainty of spatial data 
have used the map pair strategy (e.g., Borrough, 1986; MacEachren, 1985; 
MacEachren and Davidson, 1987). Cartographer s have spent relatively


key: chroma:document
string_value:
little time investigating the imp act of sequentia l information presentation. 
Possibilities of interactive mapping and GIS, as well as animation, have 
Fis11re 7: D<•sradin:.: of m1st11/ resolution (fro111 
top to liolf<>m) 11s an 111d1cntwn of the 1111ca­
fc1111ty i11111odt'I 1>wd11ad 1111d-cretnteo11s ocean 
flmtts.  16 cartographic perspectives Number 13, Fall 1992 
t.ll 
:J 
0 
:J 
c .._, 
c 
0 
u 
abrupt 
Fig1m· Ii: D11/1111w.fds rel''"'cut mg l'oi11t,; 111


key: chroma:document
string_value:
!IJL• ccm/111uity-nlm1pl11t•ss l'il<'ll Olll<'llll space. 
Q) __, 
Q) 
..... 
u 
t.ll 
t.ll 
:J 
0 
:J 
c .._, 
c 
0 
u 
abrupt 
"<9 
,·::• " .· .· 
smooth 
smooth 
._.:.o·.: 
begun to bring attention to this issue 
(Taylor, 1982; Slocum , 1988). One 
clear avenue to explore here is the 
potential of hypertext to allow users 
to nav igate through the maze of 
data and uncertainty representa­
tions that we might be able to 
provide (e.g., use of graphic scrip ts


key: chroma:document
string_value:
provide (e.g., use of graphic scrip ts 
to guide this process (\1onmonier, 
1992)). 
In relation to the third possibility, 
bivariate maps, the l..J.S. Census 
Bureau 's bi-\'ariate choropleth maps 
from the 1970 census are perhaps 
the best known attemp t to relate 
two \'ariables on one map. Experi­
mentation with those maps by 
several researchers indicates that 
untrained readers have considerable 
trouble reading bi-variate maps 
(e.g., Olson, 1981 ). There are,


key: chroma:document
string_value:
(e.g., Olson, 1981 ). There are, 
hO\·vever, a number of bi-varia te 
mapping possibilities that have not 
yet been investigated and previous 
attempts to use bivariate maps dea lt 
\·vith two different variables rather 
than with a single variable related to 
its uncertainty. Color satura tion (or 
intensity), for example, might be 
used as a graphic variable for 
depicting uncertainty on maps in 
which different hues are used to 
represent the data values of interest


key: chroma:document
string_value:
represent the data values of interest 
(e.g., on a land cover map). For 
printed maps in black and white, a 
combination of texture and value 
may be effecti\ ·e (see fig. 12). The 
variable of foett'> might be used in 
similar ways. 
In a dynamic visualizat ion 
environment, it would be possible 
to combine sequencing and bi­
variate techniques and allow a fade 
from a data map, through a data / 
uncertainty map, back to the data 
map. For qualitative area l data (e.g.,


key: chroma:document
string_value:
map. For qualitative area l data (e.g., 
soils) Fisher (1991) has suggested an 
animated technique to communicate 
the certainty (or uncertainty) of soil 
classifications for particular loca­
tions . Jn his visualization system, 
duration with which pi,els are 
displayed in a particular color is 
matched to the probability of that 
pixel being in a particular soil  Number 13, Fall 1992 cartographic perspectives 17 
classification. Certain sections of lhe map remain static and uncertain


key: chroma:document
string_value:
sections exhibit continual blinking between (or among) the potential soils 
for that place. 
Evaluation of the utility or affect of providing uncertainty information 
IL is relah\ ely easy to think up techniques by which uncertainty might be 
represented. Before we try to put these technique s into practice (particu­
larly in a public policy context), we should evaluate their potential impact. 
The representat ion of uncertainty about information in a GIS provides a


key: chroma:document
string_value:
uniqu e opportunity to determine whether our efforts at map symboliza­
tion and design research over the past 40 years have provided the tools 
required to develop a representation sys tem. If past perceptual 
and cognitive research along with the conceptual 
models of symbol-referent relation­
ships based on 
l'is11rc 11: semiotics are reall y 
<;i1111dntum •'f 1111 
i11taacti11c '<''lll<'llClll<i; sv,;tcm flint 
11lt1·n111fl', J1rc,;mtatim1 of tire rN< 
i11dcx mid the 1111arl11111t11111 ii


key: chroma:document
string_value:
i11dcx mid the 1111arl11111t11111 ii 
useful, we should be able to use them 
to formulate hypothese~ and design appropriate 
e'\periments in our que<.t for ans.,,,·ers about 
visuali zing uncertaint y. 
This possibility may tempt some of us to go back to our roots 
in the communicatio n model approach to cartography. Communication of 
data quality or uncertainty seems to be the ideal case for which the 
com muni cation model was developed. uncertainty can be treated as a


key: chroma:document
string_value:
precisely defined piece of information that we want a GIS user to obtain. 
am afraid, how ever, that if we follow this narrow information theor y 
approach we will hit the same dead ends that we did a decade or so ago. 
This time arou nd we need to be aware of the rang e of human-user 
intera ctions with gra ph ics that occur from initial data exploration to 
presentation. For exp lorator y applications, ·where there is no predeter ­


key: chroma:document
string_value:
mined message to commun icate, we cannot judge uncertainty depictions 
using communication effectivenes s standards. We can only evaluate these 
depictions in term s of how they alter decision making , pattern recogni­
tion, hypothesis generatio n, or policy decisions. We also must be aware of 
the fact that our (possibly) precise uncertainty information is conditioned 
by the social-cu ltural context in which decisions about what to represent


key: chroma:document
string_value:
are made (e.g., a variety of estimates exist about the reliability of the U.S. 
Census Bureau's enumera tion of homeless persons) , and by the limited 
ability of cartog raph ers to determin e the relative importance of various 
kinds of quality or uncertaint y information in a particular context. 
In addition to the quest ion of visualizing uncertaint y, there is also a 
question of quality of visualizations to consider. One way to evaluate


key: chroma:document
string_value:
\ isualizat ion of uncertainty tools, therefore, is to calibrate those tools in 
terms of their tendency towar d type I and type II visualization errors 
(MacEachren and Ganter, 1990). Does providing uncertainty information 
(or pro\'iding it in a particular .,,,ay) lead to a failure to notice patterns and 
relationships (type Il), or to a tend ency lo see patterns that do not exist 
(type J)? "v1.aps are re-presentations and as such are always one choice


key: chroma:document
string_value:
among many about ho\\ to re-present. There is always uncertainty in the 
choice of representation method, therefore, representing the uncertainty in 
our repre sentation s is an uncertain endeavor at best. 
Fig11re 10: A ra.<lt'r mnl' dL'pictirrs n composite 
l1l'i1itli mk mde.\ d11r lci air .md rmlrr ptill11tm11' 
fon lctt J and n dq•ict1v11c>f1111ca"1111ty tif tlw't' 
indi·x ml11c;;. 
Fis11r 12: Ri.;k n11d 1111Ct'rt11i11ty rrwrscd mf,1 a


key: chroma:document
string_value:
lih~1rintr map 1L'itlr i11cre11si1111 risk l'<'JlrL'sc11tcd 
by d1•rreasi11s iyr/ue (darker ;./rndesJ and 
i11aetN11g 1111art11i11t11 n•1m•,,•11ti•d /111 
i11a,~i-111gh1 <'<~lr,,• kxt111·c,  18 cartographic perspectives Number 13, Fall 1992 
ACK.'\JOWLEDGEMENTS 
REFERE CES 
I would like to thank David DiBiase and Tony Williams for sugges tion s on 
an earlier draft of this paper, Alan Brenner for sharing ideas on bi-\'ariate 
maps of uncertainty, and Catherine Reeves m the Deasy GeoGraphics


key: chroma:document
string_value:
Laboratory for the production of most of the illustrations. 
Buttenfield, B. P., and Beard, M. K. 1991. Vbualizing the quality of 
spatial information. In Tecl111ical Papers 1991. ACSM-ASPRS Annual 
Convention. V. 6, Auto-Carto 10: 423-427. 
DiBiase, D. W. 1990. Scientific visualization in the earth sciences. Eart/7 
a11d Mineral Sciences (Bulletin of the College of Earth and Mineral Sci­
ences). The Pennsyl\'ania State Lniversity =i9(2): 13-18.


key: chroma:document
string_value:
Fisher, P. 1991. Modeling and visualizing uncertainty in geograp hic data. 
Position paper for the Visuali/ation of Data Quality Specialist's :vteeting, 
'.\.CCIA Initiative 7, 8-12 June, Castine, \1E. 
Fryman, J. F., and Sines, B. R. 1991. Anatomy of the introductory cartog­
raphy course. Cartographic PerspecfiPes. 8: 4-l 0. 
Jenks, G. F. 1967. The data model concept m statistical mapping. T11tema­
tio11al Year/look of Cartography. 7:186-190.


key: chroma:document
string_value:
tio11al Year/look of Cartography. 7:186-190. 
Langford, M., and Unwin, 0. J. (in press). Generating and mapping 
population density surfaces within a geographical information system . 
Cartograpltic journal. 
MacEachren, Alan M. 1985. Accuracy of thematic maps: Implications of 
Choropleth Symboli/ation. Cartograpltica. 22(1):38-58. 
MacEachren, A., Buttenfield, B., Campbell, J., DiBiase , 0., and 
Monmonier, M. (in press). Visualization. In Geography's Inner Worlds, ed.


key: chroma:document
string_value:
R. Abler, \It. \11arcus, and J. Olson. 
MacEachren, A. M., and Davidson, J. H. 1987. Continuous geographic 
surfaces: Sample resolution, mtermediate value estimation accuracy, and 
isometric mapping. The Ammca11 Cnrtograpltcr. 14(4): 299-320. 
MacEachren, A. M., and DiBiase, 0. W. (in press). Animated maps of 
aggregated data: Conceptual and practical problems. Cartograpl1y and 
Geograpltic !11formntio11 Syste111s. 
MacEachren, A. M., and Ganter, J. H. 1990. A pattern identification


key: chroma:document
string_value:
approach to cartographic visualization. Carto~rapltica. 27(2): 64-81. 
Webster's New Collegiate Dictionary. 1974. Springfie ld, MA: G. & C. 
Merriam Company. 
Moellering, H.; Fritz, L.; Nyerges, T.; Liles, B.; Chrisman, N.; 
Poeppelmeier, C.; Schmidt, W.; and Rugg, R. (executive committee) 
1988. The proposed national standard for digital cartographic data. Tlie 
A111crica11 Cnrtograplter. 15(1): 9-142.  Number 13, Fall 1992 cartograplzic perspectives 19


key: chroma:document
string_value:
Monmonier , M. (in press). Autho ring graphic script s: Expe riences and 
principles. Cartography and Geographic l11for111atio11 Systems. 
Monmonier , M., and Johnson, B. B. 1990. De~ig11 guide for e11viro11111e11tal 
maps. Trenton, J: e'vv Jersey Department of Environmental Protection, 
Oi\'ision of Science and Research. 
Morgan, M. G., and Henrion , M. 1990. Uncertni11ty: A guide to deali11s with 
1111catni11ty 111 q111111titntii•e risk and polity analysis. Cambridge: Cambridge


key: chroma:document
string_value:
University Press. 
Muller, J. C., and Zeshen , W. 1990. A knowl edge based system for 
cartog raphic symbol des ign. The Cartographic fo11m11I. 27(1): 24-30. 
Olson , J. M. 1981. Spectrally encoded two-variable maps. A1111als of the 
A->socintio11 of America11 Geographers. 71(2): 259-276. 
Slocum, Terry A. 1988. Oe\'eloping an information system for choropleth 
maps. In Prcneedi11gs of the Third lnfl'mntional Symposi11111 011 Spatial Dnta


key: chroma:document
string_value:
Hn11dli11g, August 17-19, 1988, Sidney, Australia, 293-305. 
Rejeski, D. and Kapuscinski, J. 1990. Risk modeling with geographic 
i11for111ntio11 systems: Approaches and issues. Report of the U.S. Environmental 
Protection Agency, Office of Information Resources Management. 
Robinson , A.H .; Sale, R. D .; Morrison, J. L.; and Muehrcke, P. C. 1984. 
Elements of Cartography. (Sc) .. ew York: John Wiley & Sons. 
Taylor, D.R. F. 1982. The cartographic potential of Telidon. Cartographica.


key: chroma:document
string_value:
19(3&4):18-30. 
Weibel , R., and Buttenfield, B. P. 1988. Map design for geographic 
information systems. In GTS/LJS'BB Proceedi11gs: Assessing tin• World V. I, 
San Anto nio: ACSM, ASP RS, AAG, LiRISA:350-359. 
Cuando se usan ma pas coma instrumentos de \'isualizac i6n, la exploraci6n 
de relaciones potenciales precede a la presentaci6n de datos. En estas primeras 
etapas de analisis cient ffico o formula ci6n de normas, el proveer un modo


key: chroma:document
string_value:
parn gue losana listas estim en la inexact itud en losdatos gueesta n explorando 
es crftico para las perspectivas que formen y las enfoq ues quc decidan seguir. 
Este articulo sin·e de base para desarrollar metodos para la visual izaci6n de 
informaci6n inexacta. El artfculo habla de la diferencia entre la calidad de las 
datos y la inexactitud, la aplicaci6n de las variables graficas de Bertin para la 
representaci6n de la inexactitud, los model os conceptuales de inexactitud


key: chroma:document
string_value:
espacial en cuanto a su relaci6n con clases desimbolizaci6n cartografica, y las 
categorias de interacci6n del usuario adecuadas para la presentaci6n de 
datos e inexactitud de los mismos. Tambien tratado es el t ema de coma 
podrfamos evaluar nuestros intentos de describir la informaci6n inexacta en 
los mapas. 
RES UM EN  20 cartographic perspectives Number 13, Fall 1992 
reviews 
BOOK REVIEW 
Geological Maps: A11 llltroductio11 
Alex Maltman. '\iew York: Van


key: chroma:document
string_value:
Alex Maltman. '\iew York: Van 
i ostrand Reinhold, 1990. 224 pp, 
maps, diags., and biblio. $49.95 
cloth (ISB : 0-4-12-30307-6). 
Rei1h7Ped by Norman Meek 
Oepnrt111e11t of Geograpliy 
Califomia State U11ii1ersity 
Sa11 Bernardi110. 
Geologic mappers arc perhaps the 
preeminent applied users of maps. 
The three-dimensional nature of 
most geologic phenomena means 
that geo logists must be able to 
read and manipulate a two­
dimensional map in many ways 
unimagined by most geographers.


key: chroma:document
string_value:
unimagined by most geographers. 
Perhaps the most difficult course 
for undergraduate geologists to 
master is the geologica l field camp 
where geological maps are made. 
Thu5, the complexity of the 
techniques assures a need for 
illustrated books showing the 
fundamentab of geologic map­
ping. 
This book is a welcome addition 
to the sparse literature of this field. 
It is composed of fifteen concise 
chapters, each on a specific aspect 
of geologic maps: for example,


key: chroma:document
string_value:
of geologic maps: for example, 
cross-sections, portraying strike 
and dip, unconformities, and folds. 
The chapters are liberally illus­
trated with block diagrams and 
easy-to-read figures summari7ing 
various topics, and eight full-color 
geologic map plates are included. 
There are also chapters on topics 
peripheral to interpreting geologic 
maps, such as on old and new 
techniques of producing geologic 
maps, as well as on the heritage of 
geologic mapmaking in Britain,


key: chroma:document
string_value:
geologic mapmaking in Britain, 
where geologic mapping essen­
tially originated. 
The book is mainly limited to a 
discussion of geologic maps 
produced in Britain and its former 
colonies, especially the United 
States, Canada, Australia and New 
Zealand. Discussion of geologic 
mapping in other regions is mainly 
limited to a few examples from 
France. Despite this limited 
geographic coverage, there are 
substantial international differ­
ences between geologic maps in


key: chroma:document
string_value:
ences between geologic maps in 
the English speaking regions; the 
able comparison of maps pro­
duced by different mapping 
traditions is a laudabl e aspect of 
this book. 
Each chapter includes a brief 
introduction, a discussion of the 
topic, a chapter summary and an 
annotated bibliography. Accom­
panying each chapter are several 
map exercises demonstrating the 
principles introduced in it. Many 
questions are posed about each 
map, but it is left to the reader to


key: chroma:document
string_value:
map, but it is left to the reader to 
complete them because no exercise 
solutions are included. Because 
the 24 map exercises are based on 
8.5'' ' 11 " black and white maps, 
they can be easily reproduced for 
repeated personal trials or class­
room use. 
It is apparent from the anno­
tated bibliography that severa l 
books about geo logic mapping 
have been published since I 
completed my geological field 
camp in 1981, when this kind of 
reference book was unavailable.


key: chroma:document
string_value:
reference book was unavailable. 
Although this book would have 
been an extremely useful reference 
book at field camp, I might not 
have graduated if my instructors 
could have assigned some of the 
comp lex exercises that it includes. 
There is no question that anyone 
who is able to complete all of the 
exercises will ha\'e a thorough 
knowledge of geologic maps and 
the various interpretati\'e tech­
niques that can be employed. 
There are some minor problems 
with this text, but none that


key: chroma:document
string_value:
with this text, but none that 
discourage me from recommend­
ing it. Although I found a few 
typographical errors in the text 
and exercises, the typical Ameri­
can reader will find a surprisingly 
grea t difference between British 
and American spelling of geologi ­
cal terminology, \Vhich could be 
confusing to the novice. In this age 
of computer-typeset texts, a 
publisher could ju5lify L\'\U print­
ings of a scientific text •.vhen the 
terminology is this divergent, with


key: chroma:document
string_value:
terminology is this divergent, with 
each text using the lexicon of the 
appropriate audience. In addition, 
although this book is readily 
understandable to a geologist with 
a working knowledge of the 
geologic time scale and basic 
geologic principles, some of the 
text could be much more difficult 
for the typical American geology 
undergraduate to use without such 
background knowledge. More 
importantly, a few of the black and 
white exercises arc simply too 
complex to use con\'entional


key: chroma:document
string_value:
complex to use con\'entional 
pattern symbols to differentiate the 
areas. For example, because I am 
familiar with the geology of the 
Baraboo, Wisconsin area, I am 
con\'inced that I cou ld not deter ­
mine the geological history of the 
region to the extent reque5tcd in 
the exercise, gi\·en the cartographic 
complexity of the map included. 
Thus, I am concerned that some of 
the other exercise maps might be 
similarly fla·wed. Finally, I would 
recommend that the next edition


key: chroma:document
string_value:
recommend that the next edition 
include a geologic time sca le and a 
chapter I pamphlet of accompany­
ing exercise solutions. 
Despite these criticism5, this 
book is an excellent reference text 
for field geologists. The diagrams 
explaining each topic are very well 
drawn, clnJ easily understandable 
without reference to the text. 
Although the book will be most 
useful as a reference or field camp 
text, for me the highlight of this 
book was the entertaining stories


key: chroma:document
string_value:
book was the entertaining stories 
about some famous geologic 
mappers. Like many Welshmen, 
Professor Maltman is an excellent 
story teller. He has done as good a 
job writing captivating stories 
about some famous geo logists as 
he has in clarifying the exceedingly 
complex techniques of geologic 
mapping.  Number 13, Fall 1992 cartographic perspectives 21 
BOOK REVIEW 
Geographicnl Information Sys­
tems: Principles and Applications. 
D.J. ~aguire, M.F. Goodchild, and


key: chroma:document
string_value:
D.J. ~aguire, M.F. Goodchild, and 
D.W. Rhind (eds). Essex, England: 
Longman Scientific & Technical, 
1991. Vol. 1, Principles, 649 pp. 
Vol. 2, Applications, 447 pp. $295 
Hardcover. (ISBN 0-582-05661-6) 
(Copublished in the United States 
with John Wiley & Sons, Inc., , ew 
York, (ISB 0-470-21789-8). 
Reviewed by£. Ly1111 Usery, 
Depnrfnrent of Geograplzy, 
U11iversity of Wisconsin, 
Madison 
Geographic Information Systems 
(GIS) have developed to a stage 
where production of a large


key: chroma:document
string_value:
where production of a large 
reference compendium is not only 
feasible, as the editors state in their 
preface to this work, but necessary. 
TI1is two-volume set is a milestone 
in the continuing development of 
GIS in three respects: first, it 
presents a comprehensive view of 
GIS as an emerging technology; 
second, it provides a reference 
work for researchers and practic­
ing GIS professionals; and third, it 
attempts to develop the basis of 
GIS as a discipline. The stated aim


key: chroma:document
string_value:
GIS as a discipline. The stated aim 
of the book is to assemble a team 
of international experts to write a 
major reference work on GJS. 
Although there is a significant 
North American and European 
(particularly the United Kingdom) 
bicis, the editors have accom­
plished this aim. With only a few 
flaws in the presentation, the work 
is a monumental achievement and 
will probably serve as the major 
GIS reference for some years to 
come. 
The book is well organized into


key: chroma:document
string_value:
come. 
The book is well organized into 
four sections: 1) an introductory 
overview with eight chapters 
examining the definitions, history, 
settings, and critique of GIS; 2) 
principles of GIS consisting of 26 
chapters arranged into subsections 
concerning the nature of spatial 
data, digital representation, 
functional, display, and opera­
tional issues; 3) applications of GIS 
with 22 chapters in four subsec­
tions concerning national and 
international programs, socio­


key: chroma:document
string_value:
international programs, socio­
economic, en\'ironmental, and 
management applications; and 4) 
an epilogue which briefly summa­
rizes the main ideas and presents 
projections for the future. The 
editors tie the work together by 
providing an introductory article 
for each of the first three sections 
and by authoring the epilogue. 
The book contains a table of 
contents, preface, and list of 
contributors with affiliation and 
research interests repeated in each


key: chroma:document
string_value:
research interests repeated in each 
of the two volumes. While each 
article contains its own reference 
list, each volume contains a 
consolidated bibliography of some 
60 pages, a six-page list of acro­
nym definitions, an author index 
which includes page numbers 
where citations occur, and an 
extensive subject index. The 
repetition of the bibliography and 
indices allows each volume to be 
used independently but at the cost 
of the extra pages. 
The book is a good, comprehen­


key: chroma:document
string_value:
The book is a good, comprehen­
sive work meeting the need in the 
GIS area for such a reference 
volume. It is similar in some 
respects to the Mnmtnf of Photo­
gm111111etry and the Mm111nl of 
Remote Se11si11g published by the 
American Society for Photogram ­
metry and Remote Sensing, but 
unlike those manuals this book 
does not present a rigid, factual 
account of GIS. For example, one 
cannot use this book to learn how 
to program a quadtree data 
structure or how to use relational


key: chroma:document
string_value:
structure or how to use relational 
algebra to extract relevant geo­
graphical data attributes, as would 
be expected in a manual. The 
articles are more of a research 
approach, some with speculation 
and futurism. The book does 
provide an excellent overview of 
the general principles and applica­
tions of GIS, which is the intent. It 
is aimed at advanced undergradu­
ates, postgraduates, professionals, 
and research workers and suc­
ceeds at presenting the appropriate


key: chroma:document
string_value:
ceeds at presenting the appropriate 
inforrnalion Lo Lhis larget audience. 
At the same time, GIS is an area 
where criticism has been scarce. 
This book is no different and the 
editors lament the fact that in the 
applications part of the work, no 
examples of GIS failures are 
included. The one chapter which 
does level criticism focuses on 
ideas of cartography's demise, the 
booster atmosphere surrounding 
crs, and the declarations of 
success before implementation or


key: chroma:document
string_value:
success before implementation or 
experimentation. That GIS leads to 
improved spatial analysis is 
usually not questioned, but this 
aspect is the weakest of the system 
and true spatial analysis is incor­
porated in few if any GIS. Several 
chapters in this work echo this 
criticism as well as the limitations 
of GTS to handle three-dimensional 
and temporal data. Also, the 
chapter criticizes GlS researchers 
and practitioners who are quick to 
adopt new paradigms (currently


key: chroma:document
string_value:
adopt new paradigms (currently 
object-orientation has captured the 
GIS collective imagination) and 
hail them as the solution to repre­
sentation of geographic data 
before any implementation or 
experimentation has been per­
formed. 
The section on principles of GIS 
forms the core of this work and the 
editors' introduction identifies a 
small number of organizing 
principles which have emerged in 
GIS: raster versus vector, query 
versus product, and spatial


key: chroma:document
string_value:
versus product, and spatial 
analysis versus spatial informa­
tion. The principles are organized 
by identifying key scientific 
questions of GIS which include the 
nature of spatial data, digital 
representation, functional, display, 
and operational issues. 
The applications section is a 
good sampling of the possible 
types of GIS applications. Its 
limitation is that the breadth of the 
current and potential applications  22 cartograpl1ic perspectives Number 13, Fall 1992


key: chroma:document
string_value:
cannot be effectively represented 
in a ':>ingle volume. 
In the epilogue the editors 
reflect on the ideas presented 
throughout the book and make 
some statements about the current 
status of GlS with a prognosis for 
the future. It examines the out­
standing issues in the research 
agenda, projections to the year 
2000, and hm .. · GIS fits in the 
bigger societal future. Briefly 
examining its history, the editors 
think GIS is converging upon a set 
of generic issues through the use


key: chroma:document
string_value:
of generic issues through the use 
of technology. These issues 
include data capture, data model­
ling, accuracy, data volume, spatial 
analysis, user interfaces, cost/ 
benefit analysis , and impacts on 
organization'>. An argument is 
made for geographic information 
science instead of the technology 
of GlS. While GIS was once seen 
only as access to maps , it is now 
viewed as access to the world 
represented by maps. Drawing a 
parallel to statistical packages, GlS


key: chroma:document
string_value:
parallel to statistical packages, GlS 
is said to be at the stage of those 
packages in 1970. Sta tis tics 
emerged as a discipline, will GIS 
do the same or will it follmv the 
path of remote sensing and remain 
an interdisciplinary tool for all 
spatial scientists? 
While GIS has many of the 
trappings of a discipline, including 
journals, trade press, conferences, 
textbooks, college classes and 
curricula, is there a fundamental 
set of problems for GIS to exam­


key: chroma:document
string_value:
set of problems for GIS to exam­
ine? Two views of GIS are put 
fonvard, one in which GIS follows 
the path of the quantitative 
revolution in geography in the 
1960s. Today few geographers, 
particularly human geographers, 
are concerned with quantification. 
This view portrays GIS as the 
Edsel of electronic data processing. 
The second view projects contin­
ued com·ergence of ideas, disci­
plines, technologies, and a need for 
the various application areas to 
remain affiliated. The editors


key: chroma:document
string_value:
remain affiliated. The editors 
prefer the second view and 
expound upon it in projections for 
GIS to the year 2000. 
In summary, the book is a major 
step in developing a comprehen­
sive view of GIS. While one may 
not agree with the statements in 
the introduction or the epilogue 
(and there is contradiction among 
the contributors), the editors are to 
be commended for the production 
of such a reference work. Flaws, 
such as inclusion of the subsection


key: chroma:document
string_value:
such as inclusion of the subsection 
titles on ly in the table of contents 
and not in the subsections them­
selves, some cited references 
which do not appear in the refer­
ence list or in the consolidated 
bibliography, and a few isolated 
grammatical errors, are minor. 
One major problem is the color 
plates. Most are too small to be 
effective (with as many as eight 
per page), particularly in the 
applications section, and in some 
cases the graphics are completely


key: chroma:document
string_value:
cases the graphics are completely 
illegible. This problem notwith­
standing, the book is an excellent 
presentation of the framework of 
GIS principles and provides a 
reasonable survey of the major GIS 
application areas with a few 
detailed examples. The editors 
elicit major themes in their intro­
ductions and tic the 56 chapters 
together well. This work is likely 
to become required reference 
material for GIS students and 
practitioners; it certainly belongs


key: chroma:document
string_value:
practitioners; it certainly belongs 
on the bookshelf of every GlS 
researcher. 
carto grapl1ic perspectives 
on tlze news 
Landsat commercialization will 
reach a major milestone on Sep­
tember 30, 1992, when taxpayer­
subsidi7ed operation of the 
program ends. Landsat is the 
United States Civil remote sensing 
satellite system operated by the 
Earth Observation Satellite Com ­
pany (EOSAT). EOSAT an­
nounced it would assume opera-
lion costs for Landsat on October


key: chroma:document
string_value:
lion costs for Landsat on October 
1, saving the taxpayer $19 million 
in Fiscal Year 1993. Landsat 6 will 
be comp leted and delivered to the 
government in October and 
·oAA has scheduled its launch 
for January 23, 1993. 
The first Landsat was launched 
in 1972; since that time, an archive 
of over 2.7 million images have 
been created. These images are 
extremely valuable and useful for 
mapping, research, and monitor ­
ing the Earth's natural resources. 
The Landsat Thematic Mapper


key: chroma:document
string_value:
The Landsat Thematic Mapper 
(T'v1) sensor collects data from a 
broad region of the electromag­
netic spectrum that includes 
visible bands, near-infrared, 
shortwave-infrared, and thermal 
wavelengths. With Landsat's TM 
30 x 30 meter resolution and large 
area coverage (100x100 miles), the 
sensor provides detailed informa­
tion at relatively low cost per unit 
area, compared to aerial photogra­
phy or other commercial satellite 
data. In addition, Landsat has


key: chroma:document
string_value:
data. In addition, Landsat has 
repeat coverage every 16 days. 
TM data is well suited for many 
environmental applications and is 
used to inventory and monitor 
world resources, wildlife habitats, 
marine environments and miner­
als. Carla Adams, at EOSAT, has 
compiled a brief description of 
case studies of environmental 
monitoring using Thematic 
Mapper data. Examples include 
the use of Landsat TM data to 
input information into a geo­
graphic information system by the


key: chroma:document
string_value:
graphic information system by the 
Suwannee River Water Manage­
ment District to help the regula ­
tory and planning staff assess 
where land cover is changing and 
to locate areas where land use 
could harm surface water. Shore ­
line changes in the Aral Sea are 
being analyzed by comparing the 
1977 Mi\115 mosaic and 1987 
mosaic. The United States Na­
tional CoastWatch Program 
intends to use TM data to develop 
a comprehensive nationally 
standardi7ed GIS to assess changes


key: chroma:document
string_value:
standardi7ed GIS to assess changes 
'  Number 13, Fall 1992 cartograpliic perspectives 23 
in land co\·er and habitat in the 
coastal regions of the United 
States. 
Because TM data provides 
current land cover information, it 
can be used to map urban cover, 
update urban-rural boundaries , 
and identify the urban fringe zone 
for planni ng. Further exampl es of 
TM data use for oil spi ll tracking, 
water quality assessment, air 
pollution, and globa l war ming


key: chroma:document
string_value:
pollution, and globa l war ming 
demonstrate the vast amount of 
analytical and mapping uses of 
Landsat imagery and data. 
Landsat 6 will provide even 
further value of this data to the 
mapping commu nity with the 
introduction of a 15 meter pan­
chromatic band . 
EOSAT is interested in making 
Landsat data grants availab le to 
researchers. Thev have made a n 
agreemen t with 'ASA to dedicate 
up to 25o/c of prod uctive capaci ty 
to the collection of re earch data


key: chroma:document
string_value:
to the collection of re earch data 
selected by NASA, which will then 
pay 50'1 of the list price for this 
data set and ·will dist ribute the 
da ta to researchers for non com­
mercial use. EOSA Twill use all 
revenues from these ASA 
purchases to make grants to 
researchers. 
recent publications 
GEOGRAPHIC INFORMATION 
SYSTEMS 
A publication entitled Geograpllic 
lufor111atio 11 Systems (GIS) and 
1\tfappin g- Standardization and 
Applications (Special Technical


key: chroma:document
string_value:
Applications (Special Technical 
Publication (STP) 1126) is availa ble 
from the A merican Society for 
Testing and \ifoterials. It contains 
twenty-six papers from a 1990 
Symposium sponsored by the 
United States Geological Survey 
and the American Society for 
Testing and \1aterials (ASTM) 
Section D18.01.03 on Remote 
Sensing and 018.01.05 on Map­
ping and GIS. The purpose of the 
symposium was to bring toget her 
engineers and scient ists to provide 
a forum for excha ngin g experi ­


key: chroma:document
string_value:
a forum for excha ngin g experi ­
ences and findings related to GIS; 
learn from a var iety of applica­
tions; promote technology trans­
fer; and provide educational 
resources for GIS, maps, and 
remot e sensing. Persons desirin g a 
copy of the publication should 
conta ct the ASTM :vfarket ing and 
Sales Office, 1916 Race Street, 
Philade lphia, Pennsylvania 19103 
(215) 299-5536. 
A number of curren t publications 
are avai lable from the American 
Society for Photogrammetry and


key: chroma:document
string_value:
Society for Photogrammetry and 
Remote Sensing (ASPRS). These 
include: Geograpliic lllformatio11 
Systems: A Guide to tlze Tecl111ol­
ogi; by John Anten ucci, Kay 
Brown , Peter Croswe ll, \1ichacl 
Kevany, and Hugh Archer; Intro ­
ductory Readings in Geograpltic 
Infon nation Systems, edited by 
Donna Peuqu et and Duane 
Marble; Tl1e llltegratio11 of R emote 
Sensing a11d Geographic Informa­
tion Systems (Proceed ings of a 
spec ial KCGIA session held at the 
1991 ASPRS-ACSM Annual


key: chroma:document
string_value:
1991 ASPRS-ACSM Annual 
Meeting). To obtain a price list 
and more information , con tact: 
ASPRS, P.O. Box 1269, Evans City, 
PA 16033; (412) 772-0070, fax (412) 
772-5281. 
The Extension Service of the 
Unive rsity of Minn esota has 
released a 12 page publi cation 
titled Introd11ctio11 to Data Analy ­
sis Using Geographic Information 
Systems . The publication pro­
vides basic in formation about the 
analytical capabilities of geo­
graphic information systems and


key: chroma:document
string_value:
graphic information systems and 
describes some of the compute r 
programs used by a GIS for map 
analysis. The cost of the publica­
tions is $2. To ord er, request item 
NR-F0-5740 and send a check or 
money orde r payable to the 
University of Minnesota to: 
Distribution Center, 3 Coffey Hall, 
uniYersity Of Yiinnesota, 14-20 
Eckles Ave., St. Paul, MN 55108-
60€H. The Telephone number for 
the Distribution Center is (612) 
625-8173. Their Federal Tax ID 
numb er is 41-6007513.


key: chroma:document
string_value:
numb er is 41-6007513. 
DIGITAL DATA AND 
ELECTRONIC ATLASES 
Strategic \>tapping has announced 
the release of Str eetBas e Plus files. 
The files are derived from 
Dynamap 2000, an enhanced set of 
TIGER files originally develo ped 
by Geographic Data Technology. 
Street Base Plus provides a higher 
address match rate when com­
pared to StreetBase or standard 
TIGER files. Stree tBase Plus files 
conta in over 10 million valid 
address ranges, zip code informa­


key: chroma:document
string_value:
address ranges, zip code informa­
tion for all street types and unique 
street segments. In addition to the 
requirements for running Atlas 
Software, your system must be 
equipped with at least: 2 MB RAM 
and DOS 3.3 or higher. Contact: 
Strategic \1apping, Inc., 4030 
Moorpark Ave, Suite 250, San Jose, 
CA 95117; (408) 985-7400, fax (408) 
985-0859. 
Omnigrap hics has announced a 
new series: Tlze Om11i Gaz etteer 
State Series . The series will cover 
all SO states individually and will


key: chroma:document
string_value:
all SO states individually and will 
be avai lable starting in September 
with the Omni Gazetteer of Neu> 
York State. Each volume ·will CO\'er 
Cl state 's populat ed places, plus 
structures, facilities, locale , 
historical places, landmarks, and 
named geographic features. For 
more information contact: Paul 
Rogers, Omnigraphics, Inc., 
Penobscot Building, Detroit, Ml 
-18226; (800) 234-13-W, 
fax (313) 961-1383.  24 cartographic perspectives Number 13, Fall 1992


key: chroma:document
string_value:
Applied Optical Media Corpora ­
tion has two CD-ROM atlases 
available for sale. American Vista, 
an atlas of the United States, has a 
visual interface that provides 
access to a rich multimedia envi­
ronment with more than 600 
Megabytes of maps, information, 
pictures, and sound . High resolu­
tion maps, topographical maps, 
resource and industry maps from 
Hammond inc, and searchabfe 
data from the 1990 U.S. Census. 
Retail price 579.95. World Vista, 
an international atlas, includes


key: chroma:document
string_value:
an international atlas, includes 
maps and data of the new repub­
lics of the old Soviet Union. It also 
has access to a rich multimedia 
environment with more than 600 
Megabytes of maps, information , 
pictures, and sound. It includes 
high resolution maps and data 
from Rand McNally. Retail Price: 
$79.95. System Requirements for 
both products are MPC: MPC or 
386sx PC with CD-ROM drive and 
sound and meeting MPC specifica­
tions with 2 MB of RAM; at least


key: chroma:document
string_value:
tions with 2 MB of RAM; at least 
6-l0x480, 256 color display capabi li­
ties (512K VRAM) and Windows 
3.1 (Windows 3.0 only if Multime­
dia Extensions 1.0 is properly 
installed). For the Macintosh: 
Color Macintosh with 2 MB RAM 
running System 7.0. For more 
information contact: App lied 
Optical Media Corpora tion, 1450 
Boot Road, Building 400, 
Westchester, PA 19380; (215) 429-
3701, fax (21.3) 429-3810. 
MAPPING 
Microlmages Press recent ly 
announced the publication of A


key: chroma:document
string_value:
announced the publication of A 
Guide to Map and Imag e Process­
ing by Dr. Merri P. Skrdla. This 
292-page, soft cover edition is a 
techn ical reference on the selection 
and use of a second genera tion 
d esktop or laptop microcomputer 
system for integrated GIS, image 
processing CAD, spa tial databases, 
A\.1/ FM, and desktop mapping. 
The retail price is 520. Contact: 
Microlmages, Inc., 201 Nor th 8th 
Street, Suite 15, Lincoln, l'\eb raska, 
68508-1347; (402) 477-95.3-l.


key: chroma:document
string_value:
68508-1347; (402) 477-95.3-l. 
MAPPING SOFTWARE 
GEOVISION, Inc. has released 
StatMapIII. StatMapill for 
Windows is a sta tistical map ping 
program that provides the capabil­
ity to match demographic data 
values to geograp hic coordina te 
files in order to crea te thematic 
maps for analysis and presenta­
tion. StatMaplII allows direct 
access to U.S. Census Bureau 
TIGER base map and 1990 Cens us 
databases. The minimwn sys tem 
requiremen ts are MS-DOS 3.31 or


key: chroma:document
string_value:
requiremen ts are MS-DOS 3.31 or 
later, Microsoft Windows 3.0 or 
later, PC using an 80286 or better, 
2MB memory, Flopp y disk drive, 
Hard d isk (40 MB minim um), EGA 
or VGA grap hics adapter and 
monitor, Microsoft Mouse or 
compatible device. Contac t 
GEOVISJO, , Inc., 5680-B 
Peachtree Parhvay, , orcross, 
Georg ia 30092; (404) 448-8224, fax 
(404) 447-4525. 
MAP USE 
The National Council for Geo­
grap hic Education has published 
Tl1e Language of Maps , as the first


key: chroma:document
string_value:
Tl1e Language of Maps , as the first 
monograph in their Pathway i11 
Geography Series. The publication, 
authored by Professor Phil 
Gersme hl of the University of 
Minnesota, is a suppl ementa ry 
manual that introduces studen ts to 
the language(s) used to express 
ideas about spatial relationships. 
The volume is recommended for 
use in intr oductory courses in 
geography and m ap reading. 
Topics covered includ e: basic 
spa tial concepts, various types of


key: chroma:document
string_value:
spa tial concepts, various types of 
maps and analytica l tools used by 
the map reader, spa tial ideas of 
distance, direction, area, and 
volum e, scales and grid s, and 
drainage, settle ment and forest 
pattens, etc. To order, send $15 
plus 52 for shipping and handling 
payable to the ational Council for 
Geographic Education to: National 
Counc il for Geographic Education, 
16A Leonard Hall, Indiana Unive r­
sity of Pennsylvania, Indiana , 
Pennsylvania 15705-1087; (412) 
357-6290.


key: chroma:document
string_value:
Pennsylvania 15705-1087; (412) 
357-6290. 
The Third Edition of Map Use, 
Reading - Analysis - Interpr eta­
tion written by Phillip C. 
Muehrcke and edited by Juliana 0. 
Muehrcke, is now available. The 
new edition has over 500 illustra­
tions, 10 new chap ters, exercises 
added to each chapter, text up­
dates from beginning to end, and 
more information about the impact 
of electronic technology. To order 
send a check or mone y order for 
$32 to: JP Publications, P.O. Box


key: chroma:document
string_value:
$32 to: JP Publications, P.O. Box 
44173, Madison, Wisconsin 53744. 
MAPS 
The Association of Canadian Map 
Libraries and Archives (AC:MLA) 
is offering Standard Topograplri cal 
Maps of Canada, 1904-1948, a 31-
page softcove r booklet that lists 
maps produced by surveyo rs 
work ing for the Canadian Govern­
ment. The maps show mountain 
ranges, lakes, rivers, and streams 
for different areas of Canada. In 
additio n, the book includes 22 
map-sheet illustrations. The cost is


key: chroma:document
string_value:
map-sheet illustrations. The cost is 
510. Also available are Early 
Canadian Topographic Map 
Series: the Geological Survey of 
Canada, 1842-1949, and Sectional 
Maps of West ern Canada, 1871-
1955: An Early Canadian Topo­
graphic Map Series. These 
softcove r booklets List sheets of 
sectio nal maps that contain 
township boundaries and topo­
gra phic features. Each costs $15. 
Contact : ACMLA, c/ o MAPS, 
National Archives of Canada, 
Ottawa, Canada K1A ON3; (613) 
99.3-1079.  ,


key: chroma:document
string_value:
Ottawa, Canada K1A ON3; (613) 
99.3-1079.  , 
Number 13, Fail 1992 cartographic perspectives 25 
co11ti1111ed from page 2 
received her B.S. degree in chemis­
try (1961), and an M.S. (1964) and 
Ph.D. (1969) degrees from the 
University of Wisconsin in cartog­
raphy and educational psychology. 
Barbara contributed more than 
50 articles, reviews , and essays to 
the professional literature on 
topi cs related to map design, 
education, cognitive psychology 
and human factors, and computer­


key: chroma:document
string_value:
and human factors, and computer­
assisted vehicle navigation and the 
Intelligent Vehicle Highway 
System (]VHS). She is probably 
most well recogni7ed for her co­
authored book on The Nature of 
Maps (with Arthur H. Robinson). 
Barbara was a member of the 
North American Cartographic 
Information Society, the American 
Cartographic Association, The 
American Congress on Surveying 
and Mapping, the Associatio n of 
American Geographe rs, and the 
International Cartographic Asso­


key: chroma:document
string_value:
International Cartographic Asso­
ciation. Her service to these 
organizations included (among 
other things) Chair of the U.S. 
National Committee for ICA, U.S. 
National Committee for IGU, 
Editorial Board of The American 
Cartographer (now Cartography 
and Geographic Information 
Systems), Comm ittee for Automo­
bile Na\'igational Aids, Society of 
Automotive Engineers, and most 
recently Vice Preside nt of the 
International Cartographic Asso­
ciat ion. Her dedication and


key: chroma:document
string_value:
ciat ion. Her dedication and 
contributions to the cartographic 
community will be sorely missed. 
Memorial contributions can be 
made to either: Executive Director, 
Norlhwes tem Medical Faculty 
Foundation , 680 N. Lakeshore 
Orin~, Suite 1118, Chicago, IL 
60611, or the Barbara Petchenik 
'viemorial Fund , c/o David 
Woodward, University of Wiscon­
sin, Department of Geography, 550 
. Park Street, Madison, WI 53706 
(the latter will be used to fund an 
internationally sponsored annual


key: chroma:document
string_value:
internationally sponsored annual 
chi ldren's map pi ng competit ion). 
announcements 
J.B. Harley Research Fellowships 
in the History of Cartography . 
A fund in the memory of the late 
Profes or Brian Harley (Professor 
in the Geograp hy Department at 
the University of Wisconsin­
Yiilwaukee) has been initiated to 
support the J.B. Harle11 Research 
Fellow"l1ips i11 tire Hi"tory of Cartog­
raphy. The target of £40,00 will 
fund up to three fellowships per 
year, each of one month's dura­


key: chroma:document
string_value:
year, each of one month's dura­
tion. Anyone pursuing advanced 
research in the field will be eli­
gible, whatever their nationality, 
discipline or profession. Prefer­
ence will be given to interpretive 
studies reflecting the notable 
contributions made by Professor 
Harley. The awards will provide 
opportunity for intensive use of 
the major London Co llect ions, 
notably the British Library, . a­
tional 'viaritime Museum, Public 
Record Office and Royal Geo­


key: chroma:document
string_value:
Record Office and Royal Geo­
graphical Society, as well as others 
within reach of London. The 
Fellowships will provide "velcome 
stimulus to the academic study of 
the history of cartography world­
wide. It is anticipa ted that most of 
the applicants will come from 
outside the United Kingdom. The 
Trust's officers are Professor 
P.D.A. Harvey (Chairman), Dr. 
Cathe rine Delano Smith (Hon 
Treasurer) and, as T Ion. Secretary, 
Tony Campbell, British Library


key: chroma:document
string_value:
Tony Campbell, British Library 
Map Library , Great Russell Street, 
London WC1B 3DG, to whom 
contributions (The J.B. Harley 
Resenrc/1 Fellowships Tmst F1111d) or 
enquirie s may be sent. 
ACSM 20th Annual Map Design 
Competition 
The American Ca rtograp hic 
Associat ion of the American 
Congress on Surveying and 
Mapping (ACSM) is aga in spon­
sor ing their annual \1ap Design 
Competition to promote interest in 
map design and to recogni ze 
significant design advances in


key: chroma:document
string_value:
significant design advances in 
cartography. The Map Design 
Competition is open to all 
mapmakers in the United States 
and Canada. oted cartographers 
and designers judge entries based 
on achievement of stated objec­
tives, color, overall design and 
impression , craftsmanship, and 
typography . The winning entries 
will be exhib ited on February 15· 
18, 1993 at the ACSM Annual 
conventio n in New Orleans, 
Louisiana. Entries may also be 
displayed at a number of other


key: chroma:document
string_value:
displayed at a number of other 
national and international profes­
sional functions and will become 
part of the permanent collectio n of 
the U.S. Library of Congress. All 
winners will recei\'e notification at 
least two weeks before the ACSM 
Annual Convention. Cash prizes 
will be awarded in variou s catego­
ries. Only maps completed and/ 
or published in 1992 are eligible. 
The deadline for entires is Decem­
ber 15, 1992. For more information 
contact: Ms. Dierdre Bevington­


key: chroma:document
string_value:
contact: Ms. Dierdre Bevington­
Attardi, ACSM Map Design 
Competition, c/o Cartographic 
Division , :\ational Geographic 
Magazine, 1600Y1 Street ·w, 
Washington , D.C. 20036. 
1492: An Ongoing Voyage 
ln August The Library of Congress 
opened a major Quincentenary 
exhibition, 1492: An Ongoing 
Voyage. The exhibition addresses 
the worlds of America and the 
Mediterranean on the eve of 1492, 
and looks at Columbu s's voyages 
and their continui ng consequences 
in the Americas from 1492-1600.


key: chroma:document
string_value:
in the Americas from 1492-1600. 
The exhibition draws extensive ly 
on the rich collectio ns of the 
Library of Congress and is comp le­
mented by objects from other 
institutions such as the Pierpont 
Morgan Library, Tulane univer­
sity, the San Antoni o Museum of  26 cartograpl1ic perspectives Number 13, Fall 1992 
Art, the \foseum fur volkerkunde 
(\'icnna) , the Alters Art Gallery , 
and from private individuals. 
The exhibition includes an 
mtroductory film as well as 20


key: chroma:document
string_value:
mtroductory film as well as 20 
highlighted stations that feature 
outstandi ng treasures from the 
15th and 16th centuries. 1492: A11 
Ongoi11g Vo11age is divided into 
three sections: "On the Eve of 
1492," "The Atlanti c Voyage," and 
"Europe Claims America." 
Among the items on display in the 
exhibit arc The Library's unique 
1531 Huejotzingo (Mexico) Codex 
(an illuminated document, on 
display for the first time), Caspar 
Vopell 's 15-!3 manuscript terres­


key: chroma:document
string_value:
Vopell 's 15-!3 manuscript terres­
trial globe, a 14th century sea chart 
(porto lan) of the Eastern Vfediter­
ranean, the 1507 Johann Ruysch 
world map in Ptolemy's 
Geograpltia, Diego Gutier re7's map 
of America, and Martin 
Waldseemuller's 1507 
Cos111ogmplliae l11trod11ctio in which 
the name America first appears. 
1492: A11 011go111g Vovage will be 
on view in the Madison Gallery of 
the James \.iad ison Memorial 
Building, 101 Independence 
A\·enue, S.E. from August 13, 1992


key: chroma:document
string_value:
A\·enue, S.E. from August 13, 1992 
through February 14, 1993. Hours 
for the exhibition are 8:30 a.m. to 
9:30 p.m. Monday - Frida) , and 
8:30 a.m. to 6 p.m. Saturday and 
Sunday. 
Database on Geological Maps 
Now Available As USGS Report 
The United States Geological 
Survey (USGS) has released its 
bibliographic database of pub­
lished geologica l maps for areas in 
the united States and its Territo­
ries. The database, called 
GEOINDEX, contain s up-to-date 
information on geolog ic maps


key: chroma:document
string_value:
information on geolog ic maps 
published by the USGS, State 
geological surveys, geoscie nce 
societies, and other publishers. 
The database is accompanied by 
uses searc h and retrieval soft­
ware called GSSEARCH. 
GEOJ'\JDEX origina ted in the 
late 1970s to manage bibliographic 
data from the USGS Geological 
Map Ind exes (G\1 Js). The data­
base was conve rted to DOS in the 
mid 1980s. GEO!NlJEX includes 
all data on the GM Is, as '"'ell as 
data collec ted through mid-1991.


key: chroma:document
string_value:
data collec ted through mid-1991. 
GSSEARCH was developed by the 
USGS to searc h GEO! DEX and 
other fielded databases on a 
microco mputer. The hardware 
requir ements are an IBM-compat­
ible microcomputer (AT style or 
newer recommended), high­
density 5.25 floppy disk drive, 
hard disk \Vi th 16 megabytes space 
a\'ailable, EGA color monitor, 
512K RA \1, system configuration: 
20 files, 20 buffers. The softwa re 
requirements are DOS 3.20 (or 
higher). 
A repo rt on the databa se,


key: chroma:document
string_value:
higher). 
A repo rt on the databa se, 
entitled GEOINDEX Database 011 
Geologic Maps Accessible Usi11s 
GSSEARCT-1 Search and Retrieval 
Software, has been prepared by H. 
Kit Fuller and Gregory B. 
Gun nells, and is a\'ailable in hvo 
parts. Open-File Report 91-575-A 
(documentation only) is available 
for $3.25 (paper) or $4 (microfich e); 
Open-File Report 91-575-B (da ta­
base, sea rch software, and docu­
mentation) is availab le for $84 (14 
5.25 high density floppy disks).


key: chroma:document
string_value:
5.25 high density floppy disks). 
These items can be ordered from 
USGS Books and Open-File 
Reports, Box 25425 Federal Center , 
Denver, CO 80225. Include 
payment w ith your order. 
Michelin Job Opportunities 
Michelin Travel Publications has 
immediate oppor tuniti es for 
cartog raphers at their u.S. head­
quarters in Gree nvill e, South 
Carolina . These individual s will 
participate in all pha ses of map 
making and printing with respon­
sibility for comp ilation , compu ter­


key: chroma:document
string_value:
sibility for comp ilation , compu ter­
aided design, preparation and on­
press quality assura nce of maps. 
Qualified candidate s need a 
Bachelor's or Master' s degree in 
cartograph y or directly related 
field, with a minimum 3.0 GPA, or 
3-5 years professional experienc e. 
Knowledge of Macintosh, PC, and 
U IX workstation, and versatile 
programming skills are also 
needed. Familiarity with carto­
gra phic software, data base 
development and maintenance is


key: chroma:document
string_value:
development and maintenance is 
required. Send resume and salary 
requirement s to: Dept. CP, 
'\!fichelin tire Corporation, P.O. 
Box 19001, Greenville, SC 29602-
9001. 
cartographic events 
EVENTS CALENDAR 
1992 
August 1992- February 14, 1993: 
The Exhibition 1492: An Ongoing 
Voyage. Librar y of Congress, 
Madison Gallery of the Jame s 
Madi son Memorial Building , 101 
Independenc e A venue, S.E., 
Washington , D.C. 
Sep tember 30- October 4: 24th 
Annual Conference of the Inter­


key: chroma:document
string_value:
Annual Conference of the Inter­
national Visual Literacy Associa­
tion Imagery in Science and the 
Arts. Pittsburg , PA. Contact: Dr. 
Barbara Seels, lnstrnctional Design 
and Technology, 4A 16 Forbes 
Quadrangle, Univer sity of 
Pittsburg, Pittsburg, PA 15260; 
(412) 648-7338, fax (412) 648-5911. 
October 6-9: GISOEX, the Geo­
graphic Information Systems 
Conference and Exposition, 
Focusing on the Use of GIS in the 
Federal Government. The Wash­
ingto n Hilt on, Washin gton, D.C.


key: chroma:document
string_value:
ingto n Hilt on, Washin gton, D.C. 
Contact: CSPDI, Inc. (301) 445-
4500, fax (301) 445-5722.  Number 13, Fall 1992 cartograp liic perspectives 27 
October 14-17 
North American 
Cartographic Information 
Society XII Annual Meetin g 
The North American Carto­
graph ic Information Society 
will hold its twelfth annual 
meeting at the Ramada Inn in 
St. Paul, MN. The prelimi­
nary program for this year 's 
meeting is listed on pages 31 
- 33 of this issue of Carto­
s mphic Perspectives. For more


key: chroma:document
string_value:
s mphic Perspectives. For more 
information contact Dr. 
Jeffrey Patton , Progr am 
Chair , Department of Geog­
raphy, University of North 
Carolina at Greensboro, 
Greensboro, NC 27412; 
(919) 334-5388. 
November 6-1 2: GIS /LIS 1992 
Annual Conference and Exposi­
tion . San Jose, CA. Conta ct: 
ACS \.1, 5410 Grosve nor Lane, 
Bethesda, MD 20814; (301) 493-
0200, fax (301) 493-8245. 
1993 
February 15-1 8: ACSM /ASPRS 
Annual Convention . New Or­
leans, LA. Conta ct: ACSM, 5410


key: chroma:document
string_value:
leans, LA. Conta ct: ACSM, 5410 
Grosve nor Lane, Bethesd a, MD 
20814; (301) 493-0200, fax (301) 493-
8245. 
Februa ry 15-18: 7th Annual 
Symposium on Geographic 
Information Systems in Forestry, 
Environmental and Natural 
Resourc es Management. 
Vancouver, British Columbi a, 
Canada. Contact GIS 93 Sym po­
siu m Office, Suite 305, 1040 
Hamilto n Street, Vanco uver, 
Britis h Columbia, Ca nada, V6B 
2R9; (604) 688-0188, fax (604) 688-
1573. 
May 3-9: 16th International


key: chroma:document
string_value:
1573. 
May 3-9: 16th International 
Cartographic Conference - ICC 
'93 . Cologne, Germany. Contact: 
conference Secretariat , AKM 
Congress Service, Clarastrasse 57, 
GH - 4005 Basel, Germany. 
May 5-8: Geotechnica, the Inter­
national Fair and Congress for 
Geosciences and Technology . 
Cologne, Germany. Cont act : 
KolnM esse U.S. Representa tive 
Office, German Ameri can Cha m­
ber of Commerce Inc., 666 Fifth 
Ave nue, 21s t Floor, New York, Y 
10103-0165; (212) 974-8836, fax


key: chroma:document
string_value:
10103-0165; (212) 974-8836, fax 
(212) 974-8838. 
April 6-9: Association of Ameri­
can Geographers Annual Meet­
ing. Atlcinta, GA. Conta ct: Kevin 
Klug, AAG, 171016th St. N.W., 
Wa shin gton, D.C. 20009-3198; 
(202) 234-1450. 
Jun e 5-10: 84th Annual Confer­
ence of the Geography and Map 
Division Special Libraries Asso­
ciation. Cincinn ati, OH. Contact: 
Ms. Alice C. Hudson, Chief, Ytap 
Divi sio n, . Y.P.L., 5th Avenue a nd 
42nd Street, ew York, 'Y 10018; 
(212) 930-0588.


key: chroma:document
string_value:
42nd Street, ew York, 'Y 10018; 
(212) 930-0588. 
Jun e 21-25: XVth International 
Conference on the History of 
Cartography. rewberry Library, 
Uni versity o f Chicago , Chicago, IL. 
NACIS news 
NACIS OFFICERS 
Preside11t: Jack L. Dodd , 
Tennessee Valley Authority , 1101 
Market St., HB l A, Chattanooga, 
T 37402-2801; (615) 751-5404. 
Vice Prcside11t: Jeff Patton , 
Departm ent of Geogra phv, 
Univers ity of North Carolin a­
Greensboro, Greensboro, NC 
27412; (9 19) 334-5388.


key: chroma:document
string_value:
27412; (9 19) 334-5388. 
Secretan1: Craig Remington , 
Geographv Depa rtment, Lnive r­
sitv of Alaba ma, Tuscaloosa, AL 
35487; (205) 348-1536. 
Treasurer: Edward J. Hall, 
410 McGilvrey Hall, Kent State 
University, Kent, OH 44240-0001; 
(216) 672-2017. 
Past Preside11t: James F. Fryman , 
Depa rtment of Geogra phy, Uni­
versity of orthem 1owa, Cedar 
Falls, lA 50613; (319) 273-6245. 
NACIS EXECUTIVE OFFICER 
Christopher Baruth , NACIS, 
American Geog raphic Society


key: chroma:document
string_value:
American Geog raphic Society 
Collection, P.O. 399, Milwaukee, 
WI 53201; (800) 558-8993 or (414) 
229-6282; e-mail: cmb@csd4.csd. 
uw m.edu. 
BOARD OF DIRECTORS 
James R. Ander son, Jr., FREAC, 
361 Bella my Build ing, Florida Sta te 
University, Ta lla hassee, FL 32306; 
(904) 644-2883. 
Ron Bolton, NOAA, 6010 Execu­
tive Blvd, Room 1013, Rockv ille, 
MD 20852; (301) 443-8075. 
Will Fontanez , Depa rtmen t of 
Geog raphy, -108 G & G Buildi ng, 
Unive rsity of Tennessee, Knox­


key: chroma:document
string_value:
Unive rsity of Tennessee, Knox­
ville, T 37996; (615) 974-2418. 
Hull Mclean , 1602 Society 
Court, Hernd on, VA 22070; (703) 
83+-3123. 
Jim Minton , Map Library, 
University of Tennessee, Room 1 5 
Hosk ins, Knoxv ille, TN 37996; 
(615) 974-4315. 
Ruth Rowles , 337 Atwoo d D r., 
Lexington, KY 40515; (512) 564-
5174. 
John Sutherland , \ .fap Collection, 
Science Libra ry, Gniversi ty of 
Geo rgia Libraries, Athens, GA 
30602; (404) 542-0690. 
INTER-AMERICAN 
COMMITIEE


key: chroma:document
string_value:
INTER-AMERICAN 
COMMITIEE 
Chair: Jim Minton , Map Library, 
Uni\'ers ity of Tennessee, Room 15 
Hos kins, Kno>..ville, TN 37996; 
(615) 974-4315.  28 cartograpl1ic perspectives Number 13, Fall 1992 
NOM I NA TIO NS COMM ITTEE 
Chair: James F. Fryman, Depart­
ment of Geography, University of 
orthern Iowa, Cedar Falls, IA 
50613; (319) 273-6245. 
CARTOGRAPHIC 
PERSPECTIVES 
Editor: Sona Karen tz A ndrews, 
Department of Geography, 208 
Sabin Hall , 3413 . Downer


key: chroma:document
string_value:
Sabin Hall , 3413 . Downer 
Avenue, University of Wisconsin­
Milw aukee, Milwaukee , WI 53211; 
(-114) 229-4872, fax (414) 229-398 1; 
e-mail: !:>Ona@csd4.csd.uwm.edu. 
Assistant Editor: Dav id W. Ti lton, 
Department of Geographv, 208 
Sabin Hall , University of Wiscon­
sin-Milwaukee, Milwaukee, WI 
53211; (41-1) 229-4866, fax (414) 229-
3981; e-mail: tilton@convex.csd. 
uwm.cdu. 
EDITORIAL BOA RD 
Clinir: Michael Peterso n, Depart­
ment of Geography, University of


key: chroma:document
string_value:
ment of Geography, University of 
ebraska at Omaha, Omaha, 'E 
68182; (402) 554-2662. 
MEMBERSHIP INFORMATION 
For membership in the . orth 
American Cartographic Informa­
tion Society please fill out the form 
at the back of this issu e with your 
name, add res , name of your 
organization, your position and 
mention your cartographic inter­
ests along with a check payable to 
'AC IS to Edward J. llall , Trea­
surer, Map Library , 410 McGilvr ey 
Hall , Kent State University, Kent,


key: chroma:document
string_value:
Hall , Kent State University, Kent, 
OH 44242-0001. Membership fees 
for the calendar year are as fol­
lows: 
Individual / Regular 
528.00 U.S. 
Students: 58.00 u.S. 
Institutional: 558.00 U.S. 
Membership fees include subscrip­
tion to Cartovapliic Perspectiiirs and 
arc due January I. 
Minute s of the 
NACIS Board Meeting 
March 21, 1992 
St. Paul, Minne sota 
President Dodd called the meeti ng 
to order at 9:00 a.m. The following 
Board members were present: Hull


key: chroma:document
string_value:
Board members were present: Hull 
McLea n, John Sut herland, Fred 
Fryman, Jeff Patton, Jack Dodd, Ed 
Ha ll, Jim Minton, Ruth Row les, 
Craig Remington , and Ron Bolton. 
Also pre ent were Chris Baruth 
(Executive Director) , Mike 
Peterson (Chair, Editorial Board) 
and Greg Chu (Chair, Local 
Arrangements Committee). 
Treas u res Repor t 
President Dodd asked that the 
minutes from Board \1eetings of 
October 20, 21, and 23, 1991 be 
accepted and called upon Ed Hall


key: chroma:document
string_value:
accepted and called upon Ed Hall 
to present the Treasures Repo rt. 
Hall reports a balance of $23,203.10 
in the NAC IS account. Hall 
reports on a declining rate of 
interest being earned on the 
balance. He spoke concerning the 
need to establish a bank account 
which will allow unlimited 
deposits and withdra1.vals without 
a loss of interest income. Dodd 
suggests the present as timely in 
terms of centralizing financial 
operations to Milwaukee and 
asked Baruth to explore banking


key: chroma:document
string_value:
asked Baruth to explore banking 
options in Wisconsin. Hall reports 
the membership of ACIS totals 
280 active members, 44 institu­
tional , 197 personal and 39 stu­
dents. 
NACIS XII 
Jeff Patton, program chair, an­
nounced a call for papers for the 
St. Paul program in various 
publications. Further announce­
ments will be made through a 
direct mailing from our existing 
list of potentia l participants. The 
Board asked that Cartog raphic 
Animat ion be added to the sug­


key: chroma:document
string_value:
Animat ion be added to the sug­
gested topics list on the call for 
papers . The paper submission 
deadline was moved back to June 
1. Dodd offer!> the support of the 
Board to aid Patton in any way 
possib le. Greg Chu addressed the 
Board concerning local arrange­
ments and offe red potential guest 
speakers. The loca l program 
schedu le wi ll be distributed for 
d iscussio n during ou r summer 
telephone conference. Brent 
Allison w ill be a co-chair with Chu 
on local arrangements. Chu is


key: chroma:document
string_value:
on local arrangements. Chu is 
investigating possible local field 
trips , transportation requirements 
and scheduling. The \1ap Library 
at the Liniver!:>ity of Minnesota will 
offer a reception on a non-banquet 
night with a gathering at Chu'-. 
restaurant to follO\v. Two concur ­
rent work!:>hop will be held at the 
University of \itinncsota. One will 
address the uses of CorelDRA W 
oftvvare and the other will deal 
with animation cartography. 
Enrollment is limited to 20 partici­


key: chroma:document
string_value:
Enrollment is limited to 20 partici­
pants in each workshop. A fee 
schedule was adopted as follows: 
Corel Workshop - 550 for full 
conference participants, $100 for 
non conference participants and 
$35 for !:>tudents. 
Animated Cartography Work­
shop - $70 full, $125 non, and 545 
student. Interest continues for 
incorporating a workshop with 
Mcintosh platforms as offered on 
past occas ions. Five enrollment 
slots will be set aside in each 
works hop for student pa rticipa­


key: chroma:document
string_value:
works hop for student pa rticipa­
tio n. The possibility of a Sunday 
works hop session exists if demand 
warrants. Concluding remarks on 
NACJS XH were offered by Ron 
Bolton as he praises the prepara­
tion which has taken place to 
insure a successful meeting. 
NACIS XIII 
The Board reviewed several 
potential sites for the Washington 
meeting as offered by Bolton. 
Final selection went to the Quality 
Hotel in Silver Springs, Maryland. 
Dates for the meeting will be


key: chroma:document
string_value:
Dates for the meeting will be 
finalized so as not to conflict with 
1.C.G.E. Fred Anderson and Al  Number 13, Fall 1992 cartographic perspectives 29 
Herman were sugges ted as pos­
sible local arrangemen t representa­
tives. 
NACIS XI Final Report 
The Board accepte d a Final Ex­
pense/ lncome Report from Baruth 
on the Milwaukee meeting. In 
summary, the report showed 
expenses totaling $6266.80 and 
receipts totaling $6665.50 for a 
positive balance of 5398.70. Total


key: chroma:document
string_value:
positive balance of 5398.70. Total 
conference attenda nce was re­
ported at 92 participants. 
Sutherland made a motion to 
maintain the same fee structure for 
full participants to ACIS Xll as 
was estab lished for ACIS Xl. The 
motion was seconded and passed. 
Jim Minton mad e a motion for a 
daily registration fee to be set at 
$25 for stude nts and $45 for all 
other conference participants 
excludin g meals. The motion was 
secon ded and passed. 
Cartographic Perspectives


key: chroma:document
string_value:
secon ded and passed. 
Cartographic Perspectives 
Baruth announced that Sona 
Andrews had received approva l 
from her Dean to assume 
editorship of C.P. Baruth read a 
repo rt prepared by Andrews 
whic h ou tlined her progress 
throu gh this tran sitional period. 
Patton points out that the Publica­
tions Committee has in the past 
worked wit h the Editor in the 
selection of feature articles. The 
Board asks for the Publications 
Committ ee Chair (Mike Peterson)


key: chroma:document
string_value:
Committ ee Chair (Mike Peterson) 
to wor k on revising the nam e of 
the Committee to better reflect it's 
function. Furth er, the term of 
service on the Comm ittee and the 
professional composi tion of the 
Com mitt ee members will be 
reviewed. An empha sis on 
academic representation on the 
Publicatio ns Com mittee was felt to 
be an asset in projecting a schol­
arly image of C.P. The Board joins 
in the principal that C.P. should 
take on the style of the Editor.


key: chroma:document
string_value:
take on the style of the Editor. 
Forme rly allotted fund s for 
publication software have not been 
spent and remain at the disposa l of 
the Editor. Dodd ask Baruth to 
convey to And rews the need to 
publish C.P. in a timely manner. 
Dodd further receives Board 
suppo rt for production of a 
brochure which promotes C.P. in 
order to broaden subscripti on. 
Chu suggests that the Review 
Committee for refereeing art icles 
be placed in a more prominent 
page positio n in C.P. Ed Hall


key: chroma:document
string_value:
page positio n in C.P. Ed Hall 
asked to be released from the 
respon sibility of maintainin g the 
current data base for C.P. mailing 
labels. It was agree that this task 
would be moved to Milwaukee. 
Bolton asks Dodd to select with the 
Editor a suitable time fram e for 
C.P. produ ction . The Board joins 
in thankin g Dave DiBiase and his 
staff for their years of service on 
Cartographic Perspectives. 
NACIS Dues Increase 
This matter was tabled for later 
discuss ion.


key: chroma:document
string_value:
This matter was tabled for later 
discuss ion. 
Nominating Committee 
Fred Fryman asked that an an­
nouncement be placed in C.P. for 
nominations to Board positions. 
Dodd encourages members of 
NAClS who have not served on 
the Board to consider runnin g for a 
sea t. Terms expire this year for 
Bolton, Mclean, Fontanez and 
Hall. A question arose concerning 
the maint enance of a permanent 
record of election result s. Dodd 
will contact Diana Riveria for 
clarification on this matter .


key: chroma:document
string_value:
clarification on this matter . 
Membership Growth 
Subcommittee 
In respo nse to her interest, Barbara 
Trapido has been asked to serve on 
the subcommi ttee. Dodd will 
select a new chair . 
Centralization and Incorporation 
Baruth reports that centralization 
of NACIS operatio ns continu es in 
Milwaukee. Incorporation of the 
Society in Wisconsin has been 
renewed with Baruth as the 
regist er agent. 
Mission Statement 
The question arose concerning the 
lan guage of our mission statement


key: chroma:document
string_value:
lan guage of our mission statement 
as it relates to our non-profit status 
for postage permits. Baruth will 
investigate permit app lication 
procedures for mailings from 
Milwaukee. 
NACIS XIV 
The Board discusse d potential sites 
for this meeting, drawing from 
respo nses to a questionnaire 
placed before the membership. 
Dodd suggests the use of a priva te 
research group to help in site 
selection to relieve Bolton of this 
arduous task. The Board felt that 
NACIS should continue to seek


key: chroma:document
string_value:
NACIS should continue to seek 
ad visement from the membership 
as to future sites. Patton spoke in 
favor of Asheville, orth Carolina. 
As in the past, the problem of 
finding membe rs to serve on a 
local arrangemen ts commit tee 
limited site options. Several 
members of the Board spoke 
convinci ngly of the merits of 
Ottawa. Here the point was made 
that our Society's name has not 
lived up to our conference sites 
selection along with a general 
desire to incorpora te more Canadi­


key: chroma:document
string_value:
desire to incorpora te more Canadi­
ans into ACIS Minton and 
Mclean will investigate facilities 
and planning for an Ottawa 
conference. 
Cartographic Users Advisory 
Council Representative 
Ed Hall was nominated to be the 
ACIS representative to C.U.A.C. 
He accepted the nomination and 
was elected to the post. McLean 
offers a motion caJling for NACIS 
to suppo rt C.U.A.C. through a 550 
annual contribution. The motion 
passed after discussion. Patton 
offers a 1T1otion calling for NACIS


key: chroma:document
string_value:
offers a 1T1otion calling for NACIS 
to support the Society's represen­
tative to C.U.A.C. with a nominal 
con tribution in order to help 
defray the costs of attending 
meetings. After discussion a 
figure of $50 was arrived upon by 
the Board. The motion was  30 cartograplzic perspectives Number 13, Fall 1992 
amended, voted upon, and passed. 
Notebooks for President and Vice 
President 
Dodd spoke of the value of main­
taining a notebook to be passed 
through the succession of Presi­


key: chroma:document
string_value:
through the succession of Presi­
dents to aid in the continuity of the 
Society's management. He i5 now 
collecting such a notebook. 
Other Business 
Minton asks that it become a 
practice of the President to present 
a "State of the Society" report to 
the Board which would address 
committee assignments, duties of 
office holders, and other matters 
which reflect upon the well being 
of the Society. The suggestion met 
with Board support. Baruth asked 
that a committee be formed to


key: chroma:document
string_value:
that a committee be formed to 
address digital technology in the 
library setting. Chu suggested a 
future workshop on the matter. 
Chu further suggests that Pat 
McGlamory might offer another 
conference session concerning this 
important topic. After brief 
discussion and yielding to the 
pangs of hunger, President Dodd 
finds that all necessary business 
has been completed and adjourns 
at 5:10 p.m. 
Craig Re111111gto11, Secretary 
EXCHANGE PUB LI CA TIO NS


key: chroma:document
string_value:
EXCHANGE PUB LI CA TIO NS 
Cartographic Perspectiiieo:; gratefully 
ackno'vvledges the publications 
listed below, with which we enjoy 
exchange agreements. We con­
tinue to seek agreements with 
other publicil lions. 
ACSM B11//cti11. Offering feature 
articles, regular commentaries, 
letters, and news on legislation, 
people, products and publications, 
the American Congress on Sur\'ey­
ing and Mapping's B11//eti11 is 
published s1' times a year. Con­
tact: \ifembership Director, 5-no


key: chroma:document
string_value:
tact: \ifembership Director, 5-no 
Grosvenor Lane, Bethesda, MD 
20814; (301) 493-0200. 
B11/leti11 of tire Society of Cartogra­
phers. Published twice a year, the 
B11//et111 features articles on tech­
niques and ideas applicable 
to the Car tographic Dra·wing 
Office. Contilct: John Dysart, 
Subscriptions Manager, Room 51-1, 
Middlesex Polytechnic, 
Queensway, Middlesex, E '3 4SF, 
England. ' 
Carto11clre. A quarterly publication 
offering news and anl1ouncements


key: chroma:document
string_value:
offering news and anl1ouncements 
to members of the CCA. Contact: 
Canadian Carto~raphic Associa­
tion, c/ o Jim Britton, Sir Sandford 
Fleming College, School of atural 
Resources, P.O. Box 8000, Lindsay, 
Ontario K9V 5E6 Canada; (705) 
32-1-9144; e-mail: britton@trentu.ca; 
fax: (705) 
324-9716. 
Cartograplrica. A quarterly journal 
endorsed by the Canadian Carto­
graphic Association/ Association 
Canadienne de Cartographie that 
features articles, reviews and


key: chroma:document
string_value:
features articles, reviews and 
monographs. B V Gutsell, founder 
and editor. lSS 0317-Tl73. 
Contact: University of Toronto 
Press Journals Department, 5201 
Dufferin Street, Downsview, 
Ontario, M31 l 5T8 Canada; (416) 
667-7781. 
Cartographic /011mal. Biannual 
Journal of the British Cartographic 
Society. Includes research articles, 
'shorter' articles, official records of 
the Society, book re\'ien1s, and list 
of recent cartographic literature. 
Contact: Hon. Secretary, Charles


key: chroma:document
string_value:
Contact: Hon. Secretary, Charles 
Beattie, 13 Sheldrake Gardens, 
l lordle, Lymington, Hants, S04 
lOFJ, Engfand. 
Cartography. Biannual Journal 
of the Australian Institute of 
Cartographers. Each issue con­
tains two parts, the Journal proper 
and the Bulletin. The Journal 
contains original research papers, 
papers describing applied carto­
graphic projects, reviews of 
current cartographic literature and 
abstracts from related publications. 
ISS 0069-0 05. Contact: John


key: chroma:document
string_value:
ISS 0069-0 05. Contact: John 
Payne, Circulation Manager, GPO 
Box 1292, Canberra, A.C.T. 2601, 
Austra lia. 
Cartography Specialtv Group News­
letter. Triannual Publication of the 
Cartography Specialty Group of 
the Association of American 
Geographers. Features news, 
announcements and comics. 
Contact: Ann Goulette, Editor, 
Intergraph Corporation, 2051 
Mercator Drive, Reston, VA 22091-
3414; (703) 264-7141; e-mail: 
ann@pluto.ne1300.ingr.com. 
Carto111a11ia. This quarterly news­


key: chroma:document
string_value:
Carto111a11ia. This quarterly news­
letter of the Association of Map 
Memorabilia Collectors offers a 
unique mix of feature articles, 
news, punles, and announce­
ments of interest to cartophiles. 
ISS~ 0894-2595. Contact: 
Siegfried Feller, publisher/editor, 
8 Amherst Road, Pelham, MA 
01002; (413) 253-3115. 
Geotimes. Monthly publication of 
the American Geological Institute. 
Offers news, feature articles, and 
regular departments including 
notices of new software, maps and


key: chroma:document
string_value:
notices of new software, maps and 
books of mterest to the geologic 
community. Articles frequently 
address mapp ing issues. ISSN 
0016-8556. Contact: Geotimes, 
4220 King Street, Alexandr ia, VA 
22302-1507. 
GIS World. Published six times 
annually, this ne\\'S magazine of 
Geographic Information Systems 
technology offers news, features, 
and co\'erage of events pertinent to 
GlS. Contact: Julie Stutneit, 
Managing Editor, GIS World, Inc., 
P.O. Box 8090, Fort Collins, CO


key: chroma:document
string_value:
P.O. Box 8090, Fort Collins, CO 
80526; (303) 223-4848; fax: (303) 
223-5700. 
l11for111atw11 Design jo11mal. 
Triannual publication of the 
Information Design Unit. Features 
research articles reporting on a 
wide range of problems concern­
ing the design and use of visual 
information. Contact: Infor mation 
design journa l, P.O. Box 185, 
Milton Keynes MK7 6BL, England. 
Perspecti'1.1L'. This news letter of the 
ational Council for Geographic 
Education ( CGE) is published


key: chroma:document
string_value:
Education ( CGE) is published 
five times a year in October, 
December, February, April and 
June. ews items related to 1CGE 
acti\'ities and geographic educa­
tion are featured. Contact: NCGE, 
Leonard 16A, Indiana University 
of Pennsylvania, Indiana, PA 
15705; bitnet: CLMCCARD@IUP.  Number 13, Fall 1992 cartograpl1ic perspectives 31 
October 14-17, 1992 
St. Paul, Minnesota  32 cartographic perspectives Number 13, Fall 1992 
NACIS XII 
Conference Schedule 
(Preliminary) 
Wednesday Oct. 114


key: chroma:document
string_value:
(Preliminary) 
Wednesday Oct. 114 
2:00 p.m. Registration Begins 
2:00 - 5:00 ACIS Board Meeting 
7:30 - 8:00 OPENF\G SESSION 
Welcome to The Twin Cities 
Greg Chu 
Welcome to NACIS XII 
Jeff Patton 
8:00 - 9:00 Opening Address 
John Fraser Hart , Profo~sor, 
Department of Geography, Unh'L'!"Sitv of 
Minm.• .. ota. 
9:00 - 11 :00 Opening Exhibits / 
Posters (Cash Bar Social) 
Thursday, Oct. 15 
8:30 - 10:00 a.m. SESSI0:-..1 A 
"Child Development and Carto­
graphic Education" Papers bv


key: chroma:document
string_value:
graphic Education" Papers bv 
Psychologish and Cartogr,1phers on how 
children de,·elop •pati,11 aw,iren~,. and the 
implic,1tio11s for geogrnph1c and c,irto­
graphic educat ion. Organii'l'r - Henry W. 
Cas tner. 
CO. CURRENT SESSI01 B 
"Federal Mapping Agencies " 
Organi/ers - Ron Bolton and Charle!> 
Harrington. 
10:00 - 10:30 Break 
10:30 - 12:00 SESSIO C 
"The Development of Spatial 
Awareness" A panel disc ussion of 
Ses"ion A's papers on thb top ic. 
Organiters - Herbert Pick .ind Henry


key: chroma:document
string_value:
Organiters - Herbert Pick .ind Henry 
Castner. 
CONCU RRENT SESSIO D 
"Electronic Atlases and Digital 
Data Bases" Org.1ni7er - Thomas 
Hodler 
12:00 - 1:00 Lunch Break 
1:30 - 5:00 p.m. 'fecnnical and 
Local Tours 
- Minnesota Department of Transporta­
tion 
-:R.iverboat Tour of the Twin Cities Area 
--Minne sota Historical Society Map 
Collection 
Al'\NUAL BANQUET 
6:30 - 7:30 Cash Bar 
8:30 - $1:00 President 's Remarks 
jack Dodd 
9:00 - 10:00 Banquet Address


key: chroma:document
string_value:
jack Dodd 
9:00 - 10:00 Banquet Address 
Arthur H. Robinson , Prot~'>5Q r 
Fmeritus , Deptnrtmt>11t of Geography 
L ni\ ar'itv on\'l5con. l~ \iad1"<.m. 
Friday, Oct. 16 
8:30 - 10:00 a.m. SESSIO E 
"Software Use in Cartographic 
Production with an Emphasis on 
the Small Lab" Orb"am:wr' - Jo-.eph 
<,toll ,md Donna Schl'nstrom. 
CO 'Cl.J RRENT SESSIO F 
"Communication and Cognition 
in Mapping" Oq.~amzers - <;cou 
Fruend"<:huh, Riley Jaco~ and Marga ret 
Pearce . 
10:00 - 10:30 Break


key: chroma:document
string_value:
Pearce . 
10:00 - 10:30 Break 
10:30- J2:00 SESSION G 
"Interactive Videodisc Mapping 
Project" Organizu!.-SO!kl Andrews, 
hris Baruth, David Tilton and Yvonne 
Bode. 
CO. CURRE ·r SESSION H 
"Map Librarians Speak to Geog­
rapher s and Cartographers: What 
We <::an Do For You and How 
to Get What You Need From Us" 
A o,eries of bnef prl'°'cntatiom followed b~ 
,m e'tcndcd panel di,.,cussion. Organizer -
'\Janey Kandoian. 
12:00 - 2:00 p.m. Lunch Buffet 
and Annual Business Meeting


key: chroma:document
string_value:
and Annual Business Meeting 
2:00 - 4:00 SESSION 1 
"Cartographic Education" A panel 
discussion ol cu rrent trend., in unl\·e~1ty 
cartograp hic education Pane l includes 
rcpresentatin~c; trom acildcm ia, the public 
sector, and com mercial cartographic firms. 
Organize r - keith Rice. 
CQncurrent SESSION J 
"Map librarians and Digital 
Data" Organizers - Patrick 
McGlamery , Jim Minton and 
Johnn y Sutherland. 
4:00-6:00 NACIS Board Meeting 
Saturday , Oct. 17 
Workshops


key: chroma:document
string_value:
Saturday , Oct. 17 
Workshops 
Bt.-.c,., lc,l\"e at b:30 a.rn . for work.ho?" at 
thl' Umve rsit} of \ilinne.,ota. 
9:00-12:00 Map Producition and 
Design using Corel Draw - Greg 
Chu (Note; This i~ a morning ~~ion only. 
If the re is e11trng h interest , it may be 
repeated in tbe aftern Ootl.l. 
9:00-4:30 Macintosh Animation 
Michael Peter,.,on, Riley faqibs, John 
Krvgier, Cathcrme Recv<.>s, Da\"id Tiiton. 
9:00-4:30IBM-Based Animation -
Phil Gcr~hmel 
Social events for non-workshop


key: chroma:document
string_value:
Phil Gcr~hmel 
Social events for non-workshop 
participants: 
8:30-12:00 Visit to the Megamall 
"Mall of America" 
1:30-? Treasure Island Casino 
{C.1sino will provide :,hutt le). 
5:00 Wine and Cheese Reception 
Umver:,1ty of Mmnesota M,1p Library & 
Cartograp hv L.1boratory.  Number 13, Fall 1992 cartographic perspectives 33 
Workshops 
IBM-based Map Design 
and Production 
Saturda y, 10/17/92 
9:00-12:00 noon 
Cost 550 ($100 for non­
registered participants, $35 
for registe red students)


key: chroma:document
string_value:
for registe red students) 
You will receive hands-on 
training in creating maps 
using Corel Draw! 3.0. The 
differences between tradi ­
tional and computer-assis ted 
desig n method s will be 
analyzed. Participants will 
receive a set of public do­
main base map files to take 
with them. 
Software and Instructor: 
Core l Draw! 3.0 - Gregory Chu, 
Director, cartogra phy Lab, Univer­
sity of Minnesota. 
NOTE : This workshop may be 
offered again in the afternoo n 
depending on the response.


key: chroma:document
string_value:
depending on the response. 
IBM-based Animation 
Saturday, 10/17/92 
9:00-4:30 
Cost $70 ($125 for non­
registered participants, $45 
for registered students) 
You will learn the basic 
principles of designing and 
produ cing dynamic ani­
mated maps for bro adcas t 
purposes. The workshop 
will be conducted with a 
combination Df le~res, 
explanations, demonstra­
tions, and hands-on exer­
cises. There will be opportu­
nities for questions. 
Sof hvare and Instructo r:


key: chroma:document
string_value:
Sof hvare and Instructo r: 
Autodesk Animator - Professor 
Philip J. Gershmel, University of 
:vlinnesota . 
Macintosh Animation 
Saturday, 10/17/92 
9:00-4:00 
Cost : $75 ($125 for non­
registered participants , $45 
for registered stude nts) 
You will explore the basic 
principles and techniques of 
cartographic animation 
using a variety of software 
demonstrated by five differ­
ent instructors. Twenty five 
Macinto sh Iki computers 
will be available so that 
workshop attendees will


key: chroma:document
string_value:
workshop attendees will 
have hands-on experience in 
creating their own anima­
tions. 
Software and Instructor s: 
MacChoro II, Adobe Premiere 
and QuickTime - Michael 
Peterson , University of Nebraska 
at Omaha. 
Hypercard - Riley Jacobs, Univer­
sity of. ebraska at Omaha. 
Macromind Director - John 
Krygier and Catherin e Reeves, 
Pennsylvania State University; 
David Tilton, University of Wis­
consin-Milwaukee.  34 cartographic perspective s Numb er 13, Fall 1992 
FEATURED PAPERS


key: chroma:document
string_value:
FEATURED PAPERS 
Each issue of C11rfo~mpl11l Perspec­
fil'c~ includes featured papers, 
which are refereed articles report­
ing original work of interest to 
NACIS' diverse membership. 
Papers ranging from theoretical to 
applied topics are welcome. 
Prospective authors are encour­
aged to submit manuscripts to the 
Editor or to the Chai rperson of the 
NACIS Editorial Board. Papers 
may also be solicited from present ­
ers at the annual meeting and from 
other sources. Paper"> should be


key: chroma:document
string_value:
other sources. Paper"> should be 
prepared exclusively for publica­
tion in CP, with no major portion 
previously published elsewhere. 
All contributions will be re\·iewed 
by the Editorial Board , whose 
members will advise the Editor as 
to whether a manuscript is appro­
priate for publicat ion. Final 
publication d ecis ions rest with the 
Editor, who reserves the rig ht to 
make editorial changes to ensure 
clarity and consistency of style. 
REVIEWS 
Book reviews , map re,·ie\'\'S, and


key: chroma:document
string_value:
REVIEWS 
Book reviews , map re,·ie\'\'S, and 
mapping c;oftware re\"iews are 
welcome. The Editor will solicit 
reviews for artifacts received from 
publishers. Prospective reviewers 
are also invited to contact the 
Editor directly. 
FUGITIVE CARTOGRAPHIC 
LITERATURE 
Inform ation of interest to map 
maker s, librari ans, and ed ucators 
appea rs in diverse publications. 
We invite synopses of reviews, 
news , and papers found in outlet s 
not usually associated wit h


key: chroma:document
string_value:
not usually associated wit h 
car tography , map librarianship, or 
geography. 
TECHNICAL GUIDELINES 
FOR SUBMISSION 
Cartographic Per,pccfh>cs is d e­
signed and produced in a micro­
computer enviro nment. Therefor e, 
contributions to er should be 
submitt ed in digital form on 3..5" 
diskettes. Please send a paper 
copy along with the disk, in case it 
is damaged in transit. 
Text documents proc esse d with 
Macintosh softwa re s uch as 
WriteNow, WordPerfect, Word, and


key: chroma:document
string_value:
WriteNow, WordPerfect, Word, and 
Mac Write are preferred, as well as 
documents generated on IBM PCs 
a nd compatible s using 
WordPerfect or Word. ASCH text 
files are also acceptable. 
PostScript grap hics gene rated 
wit h Adobe J//11strafor or Aldus 
FreeHnnd for the \ita cintos h or 
Core l Systems' Corel Draw for DOS 
co mputer s are preferred , but 
gene ric PICT or TIFF format 
grap hics files are usua lly compat­
ible as well. 
For those lackin g access to


key: chroma:document
string_value:
ible as well. 
For those lackin g access to 
microcomputers, typ ed submi s­
sions will be c heerfully acce pted . 
Manually produced gra phic s 
should be no larger than 11 by 17 
inches, designed for scanning at 
600 dpi reso luti on (avoid fine­
grain ed tint screens). Continuous­
tone photographs w ill also be 
sca nned. 
Literatur e cited should conform 
to the Chicago Manual of Style, 
13th ed ., University of Chicago 
Press, Chapter 16, sty le "B". 
Examples of the co rrect citation


key: chroma:document
string_value:
Examples of the co rrect citation 
form appear in the feature articles 
of this issue. 
Submi ssio ns may be sent to: 
Sona Kare ntz Andrews, Depart­
ment of Geography, 208 Sabin 
Hall , 3413 . Down er Avenue, 
University of Wisco nsin-Milwau­
kee, Milwaukee, WI 53211; (414) 
229-!872, fa\. (414) 229-3981; e­
mail: sona@csd4.csd. uwm.edu . 
Cartogrnplzic Perspectives 
EDITOR IA L BOA RD 
M icliacl Pcterso11 
University of Nebraska­
O ma ha 
Charles Rader 
Mich igan Sta te University


key: chroma:document
string_value:
Charles Rader 
Mich igan Sta te University 
Na11cy Ryck1111111 
Unive rsity of North Carolina­
Greens boro 
0 0111111 Scl1c11sl ro111 
University of Wisconsin­
Milwaukee 
Marsha Selmer 
Unive rsity of Illin ois-Chicago 
COLOPHON 
This document was d esktop­
publi shed at the Department of 
Geogra phy, University of Wiscon­
sin-Milwaukee, using Macintosh 
Ilci computers. Word processing 
was accomplished primarily with 
Word 4.0; page layout with 
PageMaker 4.2. Graphics not


key: chroma:document
string_value:
PageMaker 4.2. Graphics not 
rendered with Aldus FreeHaJ1d 3.1 
were sca nned from paper origi­
nals. The PngeMaker document 
was output by an Agfa ProSet 9800 
at 2400 dpi. The bulletin was 
print ed by offset lithography on 
Warren Patina 70# text stoc k. Text 
type is set in Palatino, a face 
designed by Herman Zapf. The 
issue number dictated black as the 
cover color.  Number 13, Fall 1992 cartograplzic perspectives 35 
NACIS membership form


key: chroma:document
string_value:
NACIS membership form 
North American Cartographic Information Society 
Sociedad de Informaci6n Cartografica Norte Americana 
ame / rombre: 
Add ress / Direcci6n: 
Organization / Afiliaci6n profesiona l: 
Your position / Posici6n : 
Cartograp hic interests / Intereses cartograficos: 
Professional memberships/ Socio de organizaci6n: 
Membership Fees for the CalendaI Year*/ 
Valor de n6mina de socios paia el afio: 
Individual/Regular: $28.00 U.S./ E.U. 
Students/Estudian tes: $8.00 U.S./E.U .


key: chroma:document
string_value:
Students/Estudian tes: $8.00 U.S./E.U . 
Instituti onal/Miembros institucional es: 
$58.00 U.S./E.U. 
Make all checks payable to/ 
Manden sus cheques a: 
NACIS 
c/ o Edwa rd J. Hall , Treasurer 
Map Library 
410 McGilvrey Hall 
Kent State University 
Kent, OH 44242-0001 
*Member ship fees include subscript ion to Cartograpltic Perspectives.  The North American Cartographic Information Society 
(NACIS) was founded in 1980 in response to the need for a multidisciplinary


key: chroma:document
string_value:
organization to facilitate communication in the map information commu­
nity. Principal objectives of NACIS are: 
§ to promote communication, coordination, and cooperation 
among the producers, disseminators, curators, 
and users of cartographic information; 
§ to support and coordinate activities with other professional 
organizations and institutions involved with 
cartographic information; 
§to improve the use of cartographic materials through 
education and to promote graphicacy;


key: chroma:document
string_value:
education and to promote graphicacy; 
§to promote and coordinate the acquisition, preservation, 
and automated retrieval of all types of cartographic material; 
§ to influence government policy 
on cartographic information. 
NACIS is a professional society open to specialists from private, academic, 
and government organizations throughout North America. The society 
provides an opportunity for Map Makers, Map Keepers, Map Users, Map


key: chroma:document
string_value:
Educators, and Map Distributors to exchange ideas, coordinate activities, and 
improve map materials and map use. Cartographic Perspectives, the 
organization's Bulletin, provides a mechanism to facilitate timely 
dissemination of cartographic information to this diverse constituency. It 
includes solicited feature articles, synopses of articles appearing in obscure 
or non-cartographic publications, software reviews, news features, reports


key: chroma:document
string_value:
(conferences, map exhibits, new map series, government policy, new degree 
programs, etc.), and listings of published maps and atlases, new computer 
software, and software reviews. 
Department of Geo graphy 
University of Wisconsin -Milwaukee 
P.O. BOX413 
Milwaukee , WI 53201 
NONPROFIT ORG. 
U.S. POSTAGE 
PAID 
MILWAUKEE, WI 
PERMIT NO. 864


key: chroma:document
string_value:
Java, a programming language that is used almost everywhere. Some of us like it while others try to avoid it as much as they can. Let's learn Java in 5 minutes. But before that, why Java is so popular? Why was it developed in the first place? To find answer to these questions, let's go back in time and explore how Java was born. In the early 1990s, there was a growing need for a platform-independent language to write software that could run on various electronic devices. While C and C++ were


key: chroma:document
string_value:
various electronic devices. While C and C++ were the popular choices at that time, they were considered platform-dependent. So, there was a need for platform-independent language. Recognizing this need in 1991, James Gosling and his team began developing a new programming language initially named OPE. But later, it got a name change in 1995 to something you are probably very familiar with. Java. Fast forward to today. Java stands as one of the most widely used programming languages, and it is


key: chroma:document
string_value:
most widely used programming languages, and it is used everywhere from Android development, web application, gaming, embedded systems and more. Its syntax is similar to C and C++ language, but with automatic memory management that makes it more secure. The mantra of Java is, right once, run everywhere, highlighting its platform independence. Unlike C or C++, where source code is compiled into machine language, Java compiled source code into bytecode, which can run on any platform using the Java


key: chroma:document
string_value:
which can run on any platform using the Java virtual machine. This unique feature makes Java both a compiled and interpreted programming language. To embark on your Java journey, the first step is to create a class using the class keyword. It's important to note that your file name should match your class name. Oh, and remember, Java is an object-oriented programming language. So, you should be familiar with some basic object-oriented programming concepts. You know, I don't have any idea what


key: chroma:document
string_value:
concepts. You know, I don't have any idea what that means. Don't worry, I've got your back. A single line of code is a statement. When you group multiple statements together, you create a function. Then, when you group multiple functions and statements, you create a class. Think of a class as a template that describes how to create something. Let's take a real-world example, a car. Imagine a class as the basic blueprint of a car, where you can define its characteristics like color and the


key: chroma:document
string_value:
can define its characteristics like color and the number of fields. These are called attributes. To create a car with these attributes, you use a constructor, which has the same name as the class itself. A car can perform actions like starting, stopping, honking and more. To define these actions for a car, you create functions within the car class. These functions are called as methods. Metters and functions essentially mean the same thing. But when we use functions within a class, we call them


key: chroma:document
string_value:
we use functions within a class, we call them methods. Now, up until now, we have only created a blueprint for a car, not an actual car. To create an actual car based on this blueprint, you use the class name, followed by an object name of your choice, and then the new keyword. And finally, the class name again, with attributes in brackets. This way, you have created your first car using the car class. You can create as many cars as you want and access the methods of each car separately. These


key: chroma:document
string_value:
access the methods of each car separately. These objects are also called as an instance of a class. Let's get back to creating our basic program. You start by defining a class with the same file name, and then there is something important to remember. Public static void main string arcs. This is where we create our main function. Public static void is the return type of our function, and the actual code goes inside curly braces. To print something, you can use system.out.println with whatever


key: chroma:document
string_value:
you can use system.out.println with whatever you want to print inside the parentheses. Now you might wonder about public and static. Public is an access specifier, which controls who can access this main function. There are four main access specifiers in Java. Public private protected and default. Public means anyone can access it. Private means only the same class can access it. That means it can be accessed within the same class and its subclasses. And when you don't specify any access


key: chroma:document
string_value:
subclasses. And when you don't specify any access specifier, it defaults to package private, which means it can be accessed by anyone within the same package, but not from outside. Now let's talk about static. Static is used to create variables and methods that belong to a class rather than an instance of a class. For example, in our car class, you can access variables and methods after creating an object. But if you declare a static variable like number of cars and increment it in the


key: chroma:document
string_value:
like number of cars and increment it in the constructor, you can access the number of cars without creating an object. This is different from non-static variables and methods. Since static variables and methods belong to the class itself, objects created from that class share the same value for static variables. If you change the value of a static variable in one object, it reflects in all other objects too. Now our main function is the entry point of our program. So it needs to be accessible


key: chroma:document
string_value:
of our program. So it needs to be accessible without creating an object. That's why we use the static keyword. And then string args is used to pass command line arguments to our Java program. Once you are done with your coding, you can use Java C followed by your file name to compile your Java code into byte code. Then use Java followed by your file name to run your Java program. This was Java in 5 minutes and here's your certificate. Now go ahead and make your own Minecraft game.


key: chroma:document
string_value:
Hello, I'm here in the printmaking room and I just wanted to give you a quick overview of this artistic media. Printmaking basically involves working with some type of surface, applying ink to that surface and then being able to make multiple images or prints. There are four basic types of printmaking, relief, entalio, lithography, and silk screen. Relief printmaking is when you make a print from some kind of raised surface. The concept is as simple as a dirty shoe prints on the floor or marks


key: chroma:document
string_value:
as a dirty shoe prints on the floor or marks made by pressing a rubber stamp into ink. Relief prints are often made using material like wood, linoleum, and styrofoam, or really anything that will allow the artist to cut away the white areas or the areas that they don't want to receive ink. A roller is then used to spread ink over that raised surface and the design is transferred to paper through applying pressure. The entalio process describes prints that are made by cutting the lines of an


key: chroma:document
string_value:
prints that are made by cutting the lines of an image into the surface of a smooth sheet of metal. To make a print, ink is pushed into these inside lines and then the whole surface is wiped clean so that the only areas with the ink are the lines of the design. The plate is then pressed onto a wet sheet of paper transferring the ink design onto the paper. Lithography is a little different in that no incisions are made into the surface. This process works in the principle that grease attracts


key: chroma:document
string_value:
works in the principle that grease attracts grease but it also repels water. So when working with lithography, a design is drawn onto the surface of a flat stone with some kind of greasy material, usually a grease crann or something like that. And then water and printing ink are applied. A design can be made based on the fact that the greasy parts absorb the ink and the wet parts don't. Silk screen or screen print is a type of stencil printing process. The artist makes a stencil of their


key: chroma:document
string_value:
process. The artist makes a stencil of their design, places it under a sheet of silk and then uses a squeegee to spread the ink over the stencil and onto the surface below. Artists don't have to make an external stencil. They can actually block out their images directly onto the screen using glue, gum, Arabic, shellac or through the photo-emotion process. When Gutenberg invented the printing press in 1450, it completely changed the world. All of a sudden, books didn't have to be copied by hand.


key: chroma:document
string_value:
a sudden, books didn't have to be copied by hand. And there was a way to disseminate information, news and imagery to the masses. Fine art printmaking is important because it allowed artists to take this media of multiples and to express themselves visually in a way that is different from all other artistic media. I hope that you found this overview to be helpful. As you continue to explore the various ways people have used art to change the world.


key: chroma:document
string_value:
This is Sarah Burowski. She's a photographer in New York. She loves her work and her day is always busy. This is a day in her life. Sarah gets up at 8 o'clock in the morning. She brushes her teeth and has breakfast. She always makes coffee. At 8.30, Sarah gets her camera, leaves home and goes to work. New York City is always busy in the morning. Sarah never drives. She usually travels by train. Sometimes she takes photographs on the journey. Sarah works in West Brooklyn. She works for a


key: chroma:document
string_value:
Sarah works in West Brooklyn. She works for a magazine. Sometimes she works in the office. But she often works outside. At 1 o'clock in the afternoon, Sarah has lunch. She often meets a friend and goes to her favorite cafe. Sarah usually finishes work at 6. And she gets home at 6.30. Sarah has a really nice apartment in East Brooklyn. But it's a little bit small. She sometimes has dinner at a restaurant. But she usually eats at home. She eats dinner at 7.30. In the evening, she looks at her


key: chroma:document
string_value:
dinner at 7.30. In the evening, she looks at her photographs on her computer and serves the internet. She sometimes watches TV. Sarah never goes to bed early. She sometimes stays up until 2 in the morning.


key: chroma:document
string_value:
Amsterdam is the capital city of the Netherlands. The Netherlands is also known as Holland. Amsterdam is a busy, cosmopolitan city. Over 700,000 people live in the city. It's always a great time to visit and every year millions of tourists visit the city. The weather is never too hot or too cold, but it rains a lot, so don't forget your umbrella. There's a lot to see and do in Amsterdam. The city is famous for its 165 canals and 1281 bridges. It's known as the Venice of the North. The houses


key: chroma:document
string_value:
It's known as the Venice of the North. The houses next to the canals are very old and beautiful. There are boats of all shapes and sizes in Amsterdam. And many people live on houseboats. Taking a canal trip is a great way to see the city. It's lovely at night. There are a lot of museums and galleries in Amsterdam. The busiest museum is the Van Gogh Museum. Some museums like the Old Reich Museum. And the modern science museum, Nemo, are very big. But there are some small museums too. It's a good


key: chroma:document
string_value:
But there are some small museums too. It's a good city for shopping and it's famous for its beautiful fresh flowers. There aren't any big shops in the 9 streets area of the city, but there are some great small shops. It's also a fantastic place to relax in a cafe. Amsterdam isn't a good city for cars, but there are many different ways to get around. There are trains, trams and ferries too. The trams aren't expensive, but they are very busy. But the best cheap way to travel around the city is on


key: chroma:document
string_value:
best cheap way to travel around the city is on a bicycle. Amsterdam is an excellent city for cycling. There aren't any hills and there are cycle paths all over the city. A lot of people cycle every day. The Dutch love bikes. There are more than 500,000 bicycles in the city. And here, at Central Station Bicycle Park, there are over 2,000 bicycles. So, come to Amsterdam and get on a bike. It's a great way to see this amazing city. Thank you for watching.


key: chroma:document
string_value:
After knowing about noun, it is important for us to know what is a pronoun. What is a pronoun? Why is it used? The pronoun is a word used in a place of one or more nouns. It may stand for a person, place, thing or idea. It refers to a person or thing without giving the name. The various kinds of pronouns are personal pronouns, indifinate pronouns, demonstrative pronouns and introgative pronouns. Now let us understand the usage of pronouns with examples. The word Rocky has a bicycle. He writes


key: chroma:document
string_value:
examples. The word Rocky has a bicycle. He writes it every day. The words he and it refer to in the second sentence are used for Rocky and bicycle. The words he used for Rocky and it used for bicycle are called pronouns. We use pronouns to avoid repetition of the same words, which in this case are Rocky and bicycle. Most of the pronouns must be used independently, that is, without a noun following them. Example, this is a big palace. This is a pronoun as it occurs independently. But when a noun


key: chroma:document
string_value:
as it occurs independently. But when a noun follows them, they are no longer pronouns. Example, this palace is big. This is followed by the noun Palace. Here this as a determiner describes the noun and so it is not a pronoun. We have understood what are nouns and pronouns. Now let us see what are adjectives. Adjectives add to the meaning of the nouns they are associated with. They tell us about the quantity, quality, size, color, number of the noun they go with. Adjectives usually answer one of


key: chroma:document
string_value:
they go with. Adjectives usually answer one of the three questions about the noun they describe. What kind of? I found a red rose in the garden. What kind of rose? Red. How many? These soaps please. How many soaps? Three. Which one? I would eat these cakes. Which cakes? These. There are three types of adjectives. They are demonstrative, common and proper. Click on the buttons to know more. As we have reached an end of this unit, let us have a quick recap. In this unit we have learnt about


key: chroma:document
string_value:
a quick recap. In this unit we have learnt about nouns, pronouns and adjectives. Click on each of these for a quick recap. This unit has enabled you to identify, a noun in the sentence, point out a pronoun and outline an adjective. Thank you for going through this unit. Hope the information presented was useful and will help you in your day-to-day work.


key: chroma:document
string_value:
PHP 
i 
 
 
About the T utorial 
The PHP Hypertext Preprocessor (PHP) is a programming language that allows web 
developers to create dynamic content that interacts with databases. PHP is basically used 
for developing web-based software applications. This tutorial will help you understand the 
basics of PHP and how to put it in practice. 
 
Audience 
This tutorial has been designed to meet the requirements of all those readers who are 
keen to learn the basics of PHP.


key: chroma:document
string_value:
keen to learn the basics of PHP.   
 
Prerequisites 
Before proceeding with this tutorial, you should have a basic understanding of computer 
programming, Internet, Database, and MySQL. 
 
Copyright & Disclaimer 
© Copyright 2016 by Tutorials Point (I) Pvt. Ltd.  
 
All the content and graphics published in this e-book are the property of Tutorials Point (I) 
Pvt. Ltd.  The user of this e-book is prohibited to reuse, retain, copy, distribute or republish


key: chroma:document
string_value:
any contents or a part of contents of this e -book in any manner without written consent 
of the publisher.   
 
We strive to update the contents of our website and tutorials as timely and as precisely as 
possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. 
Ltd. provides no guarantee regarding the accuracy, timeliness o r completeness of our 
website or its contents including this tutorial. If you discover any errors on our website or


key: chroma:document
string_value:
in this tutorial, please notify us at contact@tutorialspoint.com 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    PHP 
ii 
 
 
T able of Contents 
About the Tutorial ............................................................................................................................................ i 
Audience ........................................................................................................................................................... i


key: chroma:document
string_value:
Prerequisites ..................................................................................................................................................... i 
Copyright & Disclaimer ..................................................................................................................................... i 
Table of Contents ............................................................................................................................................ ii


key: chroma:document
string_value:
PART 1: LEARNING PHP ................................ ................................ ................................ ............... 1 
 PHP ─ Introduction .................................................................................................................................... 2 
Common Uses of PHP ...................................................................................................................................... 2


key: chroma:document
string_value:
Characteristics of PHP ..................................................................................................................................... 3 
"Hello World" Script in PHP ............................................................................................................................. 3 
 PHP ─ Environment Setup ......................................................................................................................... 4


key: chroma:document
string_value:
PHP Parser Installation .................................................................................................................................... 4 
PHP Installation on Linux or Unix with Apache ............................................................................................... 4 
PHP Installation on Mac OS X with Apache ..................................................................................................... 6


key: chroma:document
string_value:
PHP Installation on Windows NT/2000/XP with IIS ......................................................................................... 7 
PHP Installation on Windows NT/2000/XP with Apache ................................................................................. 8 
Apache Configuration for PHP ....................................................................................................................... 10


key: chroma:document
string_value:
PHP.INI file Configuration .............................................................................................................................. 11 
 PHP ─ Syntax Overview ........................................................................................................................... 15 
Escaping to PHP ............................................................................................................................................. 15


key: chroma:document
string_value:
Commenting PHP Code ................................................................................................................................. 16 
PHP is whitespace insensitive ........................................................................................................................ 16 
PHP is case sensitive ...................................................................................................................................... 17


key: chroma:document
string_value:
Statements are expressions terminated by semicolons ................................................................................ 17 
Expressions are combinations of tokens ....................................................................................................... 17 
Braces make blocks ....................................................................................................................................... 17


key: chroma:document
string_value:
Running PHP Script from Command Prompt ................................................................................................. 18 
 PHP ─ Variable Types .............................................................................................................................. 19 
Integers .......................................................................................................................................................... 20


key: chroma:document
string_value:
Doubles .......................................................................................................................................................... 20 
Boolean .......................................................................................................................................................... 20


key: chroma:document
string_value:
NULL .............................................................................................................................................................. 21 
Strings ............................................................................................................................................................ 21 
Variable Naming ............................................................................................................................................ 24


key: chroma:document
string_value:
PHP – Variables .............................................................................................................................................. 24 
PHP Local Variables ....................................................................................................................................... 24 
PHP Function Parameters .............................................................................................................................. 25


key: chroma:document
string_value:
PHP Global Variables ..................................................................................................................................... 25 
PHP Static Variables ....................................................................................................................................... 26 
 PHP ─ Constants ...................................................................................................................................... 27


key: chroma:document
string_value:
PHP ─ Operator Types ............................................................................................................................. 29 
Arithmetic Operators..................................................................................................................................... 29    PHP 
iii 
 
Comparison Operators .................................................................................................................................. 31


key: chroma:document
string_value:
Logical Operators ........................................................................................................................................... 33 
Assignment Operators ................................................................................................................................... 35 
Conditional Operator ..................................................................................................................................... 37


key: chroma:document
string_value:
Operators Categories .................................................................................................................................... 38 
Precedence of PHP Operators ....................................................................................................................... 38 
 PHP ─ Decision Making ........................................................................................................................... 40


key: chroma:document
string_value:
The If...Else Statement................................................................................................................................... 40 
The ElseIf Statement...................................................................................................................................... 41 
The Switch Statement ................................................................................................................................... 42


key: chroma:document
string_value:
PHP ─ Loop Types .................................................................................................................................... 45 
The for loop statement .................................................................................................................................. 45 
The while loop statement .............................................................................................................................. 46


key: chroma:document
string_value:
The do...while loop statement ...................................................................................................................... 47 
The foreach loop statement .......................................................................................................................... 48 
The break statement ..................................................................................................................................... 48


key: chroma:document
string_value:
The continue statement ................................................................................................................................ 50 
 PHP ─ Arrays ........................................................................................................................................... 52 
Numeric Array ............................................................................................................................................... 52


key: chroma:document
string_value:
Associative Arrays .......................................................................................................................................... 53 
Multidimensional Arrays ............................................................................................................................... 54 
 PHP ─ Strings ........................................................................................................................................... 57


key: chroma:document
string_value:
String Concatenation Operator ..................................................................................................................... 58 
Using the strlen() function ............................................................................................................................. 58 
Using the strpos() function ............................................................................................................................ 59


key: chroma:document
string_value:
PHP ─ Web Concepts ............................................................................................................................... 60 
Identifying Browser & Platform ..................................................................................................................... 60 
Display Images Randomly .............................................................................................................................. 61


key: chroma:document
string_value:
Using HTML Forms ......................................................................................................................................... 62 
Browser Redirection ...................................................................................................................................... 63 
Displaying "File Download" Dialog Box ......................................................................................................... 64


key: chroma:document
string_value:
PHP ─ GET and POST Methods ................................................................................................................ 66 
The GET Method ............................................................................................................................................ 66 
The POST Method .......................................................................................................................................... 67


key: chroma:document
string_value:
The $_REQUEST variable ............................................................................................................................... 68 
 PHp ─ File Inclusion ................................................................................................................................. 70 
The include() Function ................................................................................................................................... 70


key: chroma:document
string_value:
The require() Function ................................................................................................................................... 71 
 PHP ─ Files & I/O ..................................................................................................................................... 72 
Opening and Closing Files .............................................................................................................................. 72


key: chroma:document
string_value:
Reading a file ................................................................................................................................................. 73 
Writing a File ................................................................................................................................................. 74 
 PHP ─ Functions ...................................................................................................................................... 76


key: chroma:document
string_value:
Creating PHP Function ................................................................................................................................... 76 
PHP Functions with Parameters .................................................................................................................... 77 
Passing Arguments by Reference .................................................................................................................. 77    PHP 
iv


key: chroma:document
string_value:
iv 
 
PHP Functions returning value ...................................................................................................................... 78 
Setting Default Values for Function Parameters ........................................................................................... 79 
Dynamic Function Calls .................................................................................................................................. 80


key: chroma:document
string_value:
PHP ─ Cookies ......................................................................................................................................... 81 
The Anatomy of a Cookie .............................................................................................................................. 81 
Setting Cookies with PHP............................................................................................................................... 82


key: chroma:document
string_value:
Accessing Cookies with PHP .......................................................................................................................... 83 
Deleting Cookie with PHP .............................................................................................................................. 84 
 PHP ─ Sessions ........................................................................................................................................ 85


key: chroma:document
string_value:
Starting a PHP Session ................................................................................................................................... 85 
Destroying a PHP Session .............................................................................................................................. 87 
Turning on Auto Session ................................................................................................................................ 87


key: chroma:document
string_value:
Sessions without cookies ............................................................................................................................... 87 
 PHP ─ Sending Emails .............................................................................................................................. 89 
Sending plain text email ................................................................................................................................ 89


key: chroma:document
string_value:
Sending HTML email ...................................................................................................................................... 91 
Sending attachments with email ................................................................................................................... 92 
 PHP ─ File Uploading ............................................................................................................................... 95


key: chroma:document
string_value:
Creating an Upload Form .............................................................................................................................. 95 
Creating an upload script .............................................................................................................................. 96 
 PHP ─ Coding Standard ........................................................................................................................... 98


key: chroma:document
string_value:
PART 2: ADVANCED PHP ................................ ................................ ................................ ......... 101 
 PHP ─ Predefined Variables ................................................................................................................... 102 
PHP Superglobals ......................................................................................................................................... 102


key: chroma:document
string_value:
Server variables: $_SERVER ......................................................................................................................... 103 
 PHP ─ Regular Expression ...................................................................................................................... 106 
POSIX Regular Expressions .......................................................................................................................... 106


key: chroma:document
string_value:
PHP's Regexp POSIX Functions .................................................................................................................... 108 
PHP ─ Function ereg() .................................................................................................................................. 108 
PHP ─ Function ereg_replace() .................................................................................................................... 110


key: chroma:document
string_value:
PHP ─ Function eregi() ................................................................................................................................. 111 
PHP ─ Function eregi_replace() ................................................................................................................... 112 
PHP ─ Function split() .................................................................................................................................. 113


key: chroma:document
string_value:
PHP ─ Function spliti() ................................................................................................................................. 114 
PHP ─ Function sql_regcase() ...................................................................................................................... 115 
PERL Style Regular Expressions ................................................................................................................... 115


key: chroma:document
string_value:
PHP's Regexp PERL Compatible Functions .................................................................................................. 117 
PHP ─ Function preg_match() ...................................................................................................................... 117 
PHP ─ Function preg_match_all() ................................................................................................................ 118


key: chroma:document
string_value:
PHP ─ Function preg_replace() .................................................................................................................... 119 
PHP ─ Function preg_split() ......................................................................................................................... 120 
PHP ─ Function preg_grep() ........................................................................................................................ 121


key: chroma:document
string_value:
PHP ─ Function preg_quote() ...................................................................................................................... 122 
 PHP ─ Error and Exception Handling...................................................................................................... 124 
Using die() function ..................................................................................................................................... 124    PHP 
v


key: chroma:document
string_value:
v 
 
Defining Custom Error Handling Function ................................................................................................... 124 
Exceptions Handling .................................................................................................................................... 127 
 PHP ─ Bugs Debugging .......................................................................................................................... 129


key: chroma:document
string_value:
PHP ─ Date and Time ............................................................................................................................ 131 
Getting the Time Stamp with time() ............................................................................................................ 131 
Converting a Time Stamp with getdate() .................................................................................................... 131


key: chroma:document
string_value:
Converting a Time Stamp with date() .......................................................................................................... 133 
 PHP ─ PHP and MySQL .......................................................................................................................... 136 
What you should already have? .................................................................................................................. 136


key: chroma:document
string_value:
Connecting to MySQL Database .................................................................................................................. 137 
Create MySQL Database Using PHP ............................................................................................................. 138 
Delete MySQL Database Using PHP ............................................................................................................. 143


key: chroma:document
string_value:
Insert Data to MySQL Database .................................................................................................................. 144 
Retrieving Data from MySQL Database ....................................................................................................... 148 
Using Paging through PHP ........................................................................................................................... 152


key: chroma:document
string_value:
Updating Data into MySQL Database .......................................................................................................... 154 
Deleting Data from MySQL Database .......................................................................................................... 157 
Using PHP to Backup MySQL Database ....................................................................................................... 159


key: chroma:document
string_value:
PHP ─ PHP and AJAX ............................................................................................................................. 162 
What is AJAX ? ............................................................................................................................................. 162 
PHP and AJAX Example ................................................................................................................................ 162


key: chroma:document
string_value:
Client Side HTML file.................................................................................................................................... 163 
Server Side PHP file ..................................................................................................................................... 165 
 PHP ─ PHP and XML .............................................................................................................................. 167


key: chroma:document
string_value:
HTML list that's not valid XML ..................................................................................................................... 167 
HTML list that is valid XML .......................................................................................................................... 167 
Parsing an XML Document .......................................................................................................................... 167


key: chroma:document
string_value:
Generating an XML Document .................................................................................................................... 169 
 PHP ─ Object Oriented Programming .................................................................................................... 170 
Object Oriented Concepts ........................................................................................................................... 170


key: chroma:document
string_value:
Defining PHP Classes ................................................................................................................................... 171 
Creating Objects in PHP ............................................................................................................................... 172 
Calling Member Functions ........................................................................................................................... 172


key: chroma:document
string_value:
Constructor Functions ................................................................................................................................. 173 
Destructor .................................................................................................................................................... 174 
Inheritance .................................................................................................................................................. 174


key: chroma:document
string_value:
Function Overriding ..................................................................................................................................... 175 
Public Members ........................................................................................................................................... 175 
Private members ......................................................................................................................................... 175


key: chroma:document
string_value:
Protected members ..................................................................................................................................... 176 
Interfaces ..................................................................................................................................................... 177 
Constants ..................................................................................................................................................... 177


key: chroma:document
string_value:
Abstract Classes ........................................................................................................................................... 177 
Static Keyword ............................................................................................................................................. 178 
Final Keyword .............................................................................................................................................. 178


key: chroma:document
string_value:
PHP ─ PHP for C Developers .................................................................................................................. 181 
Similarities ................................................................................................................................................... 181 
Differences .................................................................................................................................................. 181    PHP 
vi


key: chroma:document
string_value:
vi 
 
 PHP ─ PHP for PERL Developers ............................................................................................................ 183 
Similarities ................................................................................................................................................... 183 
Differences .................................................................................................................................................. 183


key: chroma:document
string_value:
PART 3: FUNCTION REFERENCE................................ ................................ ...............................  185 
 PHP ─ Function Reference ..................................................................................................................... 186    PHP 
7 
 
Part 1: Learning PHP    PHP 
8 
 
PHP started out as a small open source project that evolved as more and more people found


key: chroma:document
string_value:
out how useful it was. Rasmus Lerdorf unleashed the first version of PHP way back in 1994.  
 
 PHP is a recursive acronym for "PHP: Hypertext Preprocessor". 
 
 PHP is a server side scripting language that is embedded in HTML. It is used to manage 
dynamic content, databases, session tracking, even build entire e-commerce sites. 
 
 It is integrated with a number of popular databases, including MySQL, PostgreSQL, 
Oracle, Sybase, Informix, and Microsoft SQL Server.


key: chroma:document
string_value:
 PHP is pleasingly zippy in its execution, especially when compiled as an Apache module 
on the Unix side. The MySQL server, once started, executes even very complex queries 
with huge result sets in record-setting time. 
 
 PHP supports a large number of major protocols such as POP3, IMAP, and LDAP. PHP4 
added support for Java and distributed object architectures (COM and CORBA), making 
n-tier development a possibility for the first time.


key: chroma:document
string_value:
 PHP is forgiving: PHP language tries to be as forgiving as possible. 
 
 PHP Syntax is C-Like. 
Common Uses of PHP 
PHP performs system functions, i.e. from files on a system it can create, open, read, write, 
and close them. The other uses of PHP are:  
 
 PHP can handle forms, i.e. gather data from files, save data  to a file, thru email you 
can send data, return data to the user. 
 
 You add, delete, modify elements within your database thru PHP.


key: chroma:document
string_value:
 Access cookies variables and set cookies. 
 
 Using PHP, you can restrict users to access some pages of your website. 
 
 It can encrypt data. 
 
 
 
 
  
 PHP ─ INTRODUCTION    PHP 
9 
 
Characteristics of PHP 
Five important characteristics make PHP's practical nature possible: 
 
 Simplicity 
 
 Efficiency 
 
 Security 
 
 Flexibility 
 
 Familiarity 
"Hello World" Script in PHP 
To get a feel of PHP, first start with simple PHP scripts. Since "Hello, World!" is an essential


key: chroma:document
string_value:
example, first we will create a friendly little "Hello, World!" script. 
 
As mentioned earlier, PHP is embedded in HTML. That means that in amongst your normal 
HTML (or XHTML if you're cutting-edge) you'll have PHP statements like this: 
<html> 
<head> 
<title>Hello World</title> 
<body> 
    <?php echo "Hello, World!";?> 
</body> 
</html> 
It will produce the following result: 
Hello, World! 
If you examine the HTML output of the above example, you'll notice that the PHP code is not


key: chroma:document
string_value:
present in the file sent from the server to your Web browser. All of the PHP present in the 
Web page is processed and stripped from the page; the only thing returned to the client from 
the Web server is pure HTML output. 
 
All PHP code must be included inside one of the three special markup tags ate are recognized 
by the PHP Parser. 
<?php PHP code goes here ?> 
 
<?    PHP code goes here ?> 
 
<script language="php"> PHP code goes here </script>


key: chroma:document
string_value:
Most common tag is the <?php...?> and we will also use the same tag in our tutorial.    PHP 
10 
 
 
From the next chapter, we will start with PHP Environment Setup on your machine and then 
we will dig out almost all concepts related to PHP to make you comfortable with t he PHP 
language.    PHP 
11 
 
In order to develop and run PHP Web pages , three vital components need to be installed on 
your computer system.


key: chroma:document
string_value:
your computer system. 
 
Web Server - PHP will work with virtually all Web Server software, including Microsoft's 
Internet Information Server (IIS) but then most often used is freely available Apache Server. 
Download Apache for free here: http://httpd.apache.org/download.cgi 
 
Database - PHP will work with virtually all database software, including Oracle and Sybase 
but most commonly used is freely available MySQL database. Download MySQL for free here:


key: chroma:document
string_value:
http://www.mysql.com/downloads/index.html 
 
PHP Parser  - In order to process PHP script instructions , a parser must be installed to 
generate HTML output that can be sent to the Web Browser. This tutorial will guide you how 
to install PHP parser on your computer. 
PHP Parser Installation 
Before you proceed, it is important to make sure that you have a proper environment setup 
on your machine to develop your web programs using PHP.


key: chroma:document
string_value:
Type the following address into your browser's address box. 
http://127.0.0.1/info.php 
If this displays a  page showing your PHP installation related information , then it means you 
have PHP and Webserver installed properly. Otherwise you have to follow given procedure to 
install PHP on your computer. 
 
This section will guide you to install and configure PHP over the following four platforms: 
 PHP Installation on Linux or Unix with Apache 
 PHP Installation on Mac OS X with Apache


key: chroma:document
string_value:
 PHP Installation on Mac OS X with Apache 
 PHP Installation on Windows NT/2000/XP with IIS 
 PHP Installation on Windows NT/2000/XP with Apache 
PHP Installation on Linux or Unix with Apache 
If you plan to install PHP on Linux or any other variant of Unix, then here is the list of 
prerequisites: 
 
 PHP ─ ENVIRONMENT SETUP    PHP 
12 
 
 The PHP source distribution http://www.php.net/downloads.php 
The latest Apache source distribution  
http://httpd.apache.org/download.cgi


key: chroma:document
string_value:
http://httpd.apache.org/download.cgi 
 
 A working PHP -supported database, if you plan to use one ( For example MySQL, 
Oracle etc. ) 
 
 Any other supported software to which PHP must connect (mail server, BCMath 
package, JDK, and so forth) 
 
 An ANSI C compiler 
 
 Gnu make utility - you can freely download it at 
http://www.gnu.org/software/make 
 
Now here are the steps to install Apache and PHP5 on your Linux or Unix machine. If your


key: chroma:document
string_value:
PHP or Apache versions are different, then please take care accordingly. 
  
 If you haven't already done so, unzip and untar your Apache source distribution. Unless 
you have a reason to do otherwise, /usr/local is the standard place. 
gunzip -c apache_1.3.x.tar.gz 
tar -xvf apache_1.3.x.tar 
 Build the apache Server as follows 
cd apache_1.3.x 
./configure --prefix=/usr/local/apache --enable-so 
make 
make install


key: chroma:document
string_value:
make 
make install 
 Unzip and untar your PHP source distribution. Unless you have a reason to do 
otherwise, /usr/local is the standard place. 
gunzip -c php-5.x.tar.gz 
tar -xvf php-5.x.tar 
cd php-5.x 
 Configure and Build your PHP, assuming you are using MySQL database. 
./configure --with-apxs=/usr/sbin/apxs \ 
            --with-mysql=/usr/bin/mysql 
make 
make install 
 Install the php.ini file. Edit this file to get configuration directives: 
cd ../../php-5.x


key: chroma:document
string_value:
cd ../../php-5.x 
cp php.ini-dist /usr/local/lib/php.ini 
    PHP 
13 
 
 Tell your Apache server where you want to serve files from, and what extension(s) 
you want to identify PHP files. .php is the standard, but you can use .html, .phtml, or 
whatever you want. 
 
o Go to your HTTP configuration files (/usr/local/apache/conf or whatever your 
path is) 
 
o Open httpd.conf with a text editor. 
 
o Search for the word DocumentRoot (which should appear twice), and change


key: chroma:document
string_value:
both paths to the directory you want to serve files out of (in ou r case, 
/home/httpd). We recommend a home directory rather than the default 
/usr/local/apache/htdocs because it is more secure, but it doesn.t have to be 
in a home directory. You will keep all your PHP files in this directory. 
 
 Add at least one PHP extension directive, as shown in the first line of code that follows. 
In the second line, we.ve also added a second handler to have all HTML files parsed 
as PHP


key: chroma:document
string_value:
as PHP 
AddType application/x-httpd-php .php 
AddType application/x-httpd-php .html 
 Restart your server. Every time you change your HTTP configuration or php.ini files, 
you must stop and start your server again. 
cd ../bin 
./apachectl start 
 Set the document root directory permissions to world-executable. The actual PHP files 
in the directory need only be world-readable (644). If necessary, replace /home/httpd 
with your document root below: 
chmod 755 /home/httpd/html/php


key: chroma:document
string_value:
chmod 755 /home/httpd/html/php 
 Open a text editor. Type: <?php phpinfo(); ?>. Save this file in your Web server's 
document root as info.php. 
 
 Start any Web browser and browse the file. You must always use an HTTP request 
(http://www.testdomain.com/info.php or http://localhost/info.php or 
http://127.0.0.1/info.php) rather than a filename (/home/httpd/info.php) for the file 
to be parsed correctly 
 
You should see a long table of infor mation about your new PHP installation message


key: chroma:document
string_value:
Congratulations!    PHP 
14 
 
PHP Installation on Mac OS X with Apache 
Mac users have the choice of either a binary or a source installation. In fact, your OS X  
probably came with Apache and PHP preinstalled. This is likely to be quite an old build, and it 
probably lacks many of the less common extensions. 
 
However, if all you want is a quick Apache + PHP + MySQL/PostgreSQL setup on your laptop,


key: chroma:document
string_value:
this is certainly the easiest way to fly. All you need to do is edit your Apache configuration file 
and turn on the Web server. 
 
So just follow the steps given below: 
 
 Open the Apache config file in a text editor as root. 
sudo open -a TextEdit /etc/httpd/httpd.conf 
 
 Edit the file. Uncomment the following lines: 
Load Module php5_module 
AddModule mod_php5.c 
AddType application/x-httpd-php .php 
 You may also want to uncomment the <Directory /home/*/Sites> block or otherwise


key: chroma:document
string_value:
tell Apache which directory to serve out of. 
 
 Restart the Web server 
sudo apachectl graceful 
 Open a text editor. Type: <?php phpinfo(); ?>. Save this file in your Web server's 
document root as info.php. 
  
 Start any Web browser and browse the file.you must always use an HTTP request  
(http://www.testdomain.com/info.php or http://localhost/info.php or 
http://127.0.0.1/info.php) rather than a filename (/home/httpd/info.php) for the file 
to be parsed correctly


key: chroma:document
string_value:
to be parsed correctly 
 
You should see a long table of information about your new PHP installation message 
Congratulations! 
PHP Installation on Windows NT/2000/XP with IIS 
The Windows server installation of PHP running IIS is much simpler than on Unix, since it 
involves a precompiled binary rather than a source build. 
 
If you plan to install PHP over Windows, then here is the list of prerequisites:  
    PHP 
15


key: chroma:document
string_value:
PHP 
15 
 
 A working PHP-supported Web server. Under previous versions of PHP, IIS/PWS was 
the easiest choice because a module version of PHP was ava ilable for it; but PHP now 
has added a much wider selection of modules for Windows. 
 
 A correctly installed PHP-supported database like MySQL or Oracle etc. (if you plan to 
use one) 
 
 The PHP Windows binary distribution (download it atwww.php.net/downloads.php)


key: chroma:document
string_value:
 A utility to unzip files (search http://download.cnet.com for PC file compression 
utilities) 
 
Now here are the steps to install Apache and PHP5 on your Windows machine. If your PHP 
version is different, then please take care accordingly. 
  
 Extract the binary archive using your unzip utility; C:\PHP is a common location. 
 
 Copy some .dll files from your PHP directory to your systems directory (usually


key: chroma:document
string_value:
C:\Winnt\System32). You need php5ts.dll for every case. You will also probably need 
to copy the file corresponding to your Web server module - C:\PHP\Sapi\php5isapi.dll. 
It's possible you will also need others from the dlls subfolder - but start with the two 
mentioned above and add more if you need them. 
 
 Copy either php.ini -dist or php.ini -recommended (preferably the latter) to your 
Windows directory (C:\Winnt or C:\Winnt40), and rename it php.ini. Open this file in


key: chroma:document
string_value:
a text editor (for example, Notepad). Edit this file to get configuration directives; We 
highly recommend new users set error reporting to E_ALL on their development 
machines at this point. For now, the most important thing is the doc_root directive 
under the Paths and Directories section.  make sure this matches yo ur IIS Inetpub 
folder (or wherever you plan to serve out of). 
 
 Stop and restart the WWW service. Go to the Start menu -> Settings -> Control Panel


key: chroma:document
string_value:
-> Services. Scroll down the list to IIS Admin Service. Select it and click Stop. After it 
stops, select Worl d Wide Web Publishing Service and click Start. Stopping and 
restarting the service from within Internet Service Manager will not suffice. Since this 
is Windows, you may also wish to reboot. 
 
 Open a text editor. Type: <?php phpinfo(); ?>. Save this file in your Web server's 
document root as info.php.


key: chroma:document
string_value:
document root as info.php. 
 
 Start any Web browser and browse the file.you must always use an HTTP request 
(http://www.testdomain.com/info.php or http://localhost/info.php or 
http://127.0.0.1/info.php) rather than a filename (/home/httpd/i nfo.php) for the file 
to be parsed correctly 
 
You should see a long table of information about your new PHP installation message 
Congratulations!    PHP 
16 
 
PHP Installation on Windows NT/2000/XP with Apache


key: chroma:document
string_value:
To install Apache with PHP 5 on Windows follow the following steps. If your PHP and Apache 
versions are different, then please take care accordingly. 
 
 Download Apache server from www.apache.org/dist/httpd/binaries/win32. You want 
the current  stable release version with the no_src.msi extension. Double -click the 
installer file to install; C: \Program Files is a common location. The installer will also 
ask you whether you want to run Apache as a service or from the command line or


key: chroma:document
string_value:
DOS prompt. We  recommend you do not install as a service, as this may cause 
problems with startup. 
 
 Extract the PHP binary archive using your unzip utility; C:\PHP is a common location. 
 
 Copy some .dll files from your PHP directory to your system directory (usually 
C:\Windows). You need php5ts.dll for every case. You will also probably need to copy 
the file corresponding to your Web server module - C:\PHP\Sapi\php5apache.dll. to


key: chroma:document
string_value:
your Apache modules directory. It's possible that you will also need others from the 
dlls subfolder, but start with the two mentioned previously and add more if you need 
them. 
 
 Copy either php.ini -dist or php.ini -recommended (preferably the latter) to your 
Windows directory, and rename it php.ini. Open this file in a text editor (for example, 
Notepad). Edit this file to get configuration directives; At this point, we highly


key: chroma:document
string_value:
recommend that new users set error reporting to E_ALL on their development 
machines. 
 
 Tell your Apache server where you want to serve files from and what extension(s) you 
want to identify PHP files (.php is the standard, but you can use .html, .phtml, or 
whatever you want). Go to your HTTP configuration files (C: \Program Files \Apache 
Group\Apache\conf or whatever your path is), and open httpd.conf with a text editor.


key: chroma:document
string_value:
Search for the word DocumentRoot (which should appear twice) and change both paths 
to the directory you want to serve files out of. (The default is C:\Program Files\Apache 
Group\Apache\htdocs.). Add at least one PHP extension directive as shown in the first 
line of the following code: 
 
LoadModule php5_module modules/php5apache.dll 
AddType application/x-httpd-php .php .phtml 
  
 You may also need to add the following line: 
AddModule mod_php5.c


key: chroma:document
string_value:
AddModule mod_php5.c 
 Stop and restart the WWW service. Go to the Start menu -> Settings -> Control Panel 
-> Services. Scroll down the list to IIS Admin Service. Select it and click Stop. After it 
stops, select World Wide Web Publishing Service and click Start. Stopping and 
restarting the service from within Internet Service Manager will not suffice. Sin ce this 
is Windows, you may also wish to reboot.    PHP 
17


key: chroma:document
string_value:
17 
 
 
 Open a text editor. Type: <?php phpinfo(); ?>. Save this file in your Web server's 
document root as info.php. 
 
 Start any Web browser and browse the file.you must always use an HTTP request 
(http://www.testdomain.com/info.php or http://localhost/info.php or 
http://127.0.0.1/info.php) rather than a filename (/home/httpd/info.php) for the file 
to be parsed correctly 
 
You should see a long table of information about your new PHP installation message 
Congratulations!


key: chroma:document
string_value:
Congratulations! 
 
Apache Configuration 
If you are using Apache as a Web Server , then this section will guide you to edit Apache 
Configuration Files. 
 
PHP.INI File Configuration 
The PHP configuration file, php.ini, is the final and most immediate way to affect PHP's 
functionality. 
 
Just Check it here: PHP.INI File Configuration 
 
Windows IIS Configuration 
To configure IIS on your Windows machine you can refer your IIS Reference Manual shipped 
along with IIS.


key: chroma:document
string_value:
along with IIS. 
 
Apache Configuration for PHP 
Apache uses httpd.conf file for global settings, and the .htaccess  file for per-directory access 
settings. Older versions of Apache split up httpd.conf into three files (access.conf, httpd.conf, 
and srm.conf), and some users still prefer this arrangement. 
 
Apache server has a very powerful, but slightly complex, configur ation system of its own. 
Learn more about it at the Apache Web site: www.apache.org


key: chroma:document
string_value:
The following section describe s settings in httpd.conf that affect PHP directly and cannot be 
set elsewhere. If you have standard installation , then httpd.conf will be found at 
/etc/httpd/conf: 
Timeout 
This value sets the default number of seconds before any HTTP request will time out. If you 
set PHP's max_execution_time to longer than this value, PHP will keep grinding away but the    PHP 
18


key: chroma:document
string_value:
18 
 
user may see a 404 error. In safe mode, this value will be ignored; you must use the timeout 
value in php.ini instead 
DocumentRoot 
DocumentRoot designates the root directory for all HTTP processes on that server. It looks 
something like this on Unix: 
DocumentRoot ./usr/local/apache_1.3.6/htdocs. 
You can choose any directory as document root. 
 
AddType 
The PHP MIME type needs to be set here for PHP files to be  parsed. Remember that you can


key: chroma:document
string_value:
associate any file extension with PHP like .php3, .php5 or .htm. 
AddType application/x-httpd-php .php 
AddType application/x-httpd-phps .phps 
AddType application/x-httpd-php3 .php3 .phtml 
AddType application/x-httpd-php .html 
Action 
You must uncomment this line for the Windows apxs module version of Apache with shared 
object support: 
LoadModule php4_module modules/php4apache.dll 
or on Unix flavors: 
LoadModule php4_module modules/mod_php.so 
 
AddModule


key: chroma:document
string_value:
AddModule 
You must uncomment this line for the static module version of Apache. 
AddModule mod_php4.c 
PHP .INI file Configuration 
The PHP configuration file, php.ini, is the final and most immediate way to affect PHP's 
functionality. The php.ini file is read each time PHP is initialized.in other words, whenever 
httpd is restarted for the module version or with each script execution for the CGI version. If    PHP 
19


key: chroma:document
string_value:
19 
 
your change isn’t showing up, remember to stop and restart httpd. If it still isn’t showing up, 
use phpinfo() to check the path to php.ini. 
 
The configuration file is well commented and thorough. Keys are case sensitive, keyword 
values are not; whitespace, and lines beginning with semicolons are ignored. Booleans can 
be represented by 1/0, Yes/No, On/Off, or True/False. The default v alues in php.ini-dist will 
result in a reasonable PHP installation that can be tweaked later.


key: chroma:document
string_value:
Here we are explaining the important settings in php.ini which you may need for your PHP 
Parser. 
short_open_tag = Off 
Short open tags look like this: <? ?>. This option must be set to Off if you want to use XML 
functions. 
safe_mode = Off 
If this is set to On, you probably compiled PHP with the --enable-safe-mode flag. Safe mode 
is most relevant to CGI use. See the explanation in the section "CGI compile -time options". 
earlier in this chapter. 
safe_mode_exec_dir = [DIR]


key: chroma:document
string_value:
safe_mode_exec_dir = [DIR] 
This option is relevant only if safe mode is on; it can also be set with the --with-exec-dir flag 
during the Unix build process. PHP in safe mode only executes external binaries out of this 
directory. The default is /usr/local/bin. This has nothing to do with serving up a normal 
PHP/HTML Web page. 
 
safe_mode_allowed_env_vars = [PHP_] 
This option sets which environment variables users can change in safe mode. The default is


key: chroma:document
string_value:
only those variables prepended with "PHP_". If this directive is empty, most variables are 
alterable. 
safe_mode_protected_env_vars = [LD_LIBRARY_PATH] 
This option sets which environment variables users can't change in safe mode, even if 
safe_mode_allowed_env_vars is set permissively. 
 
disable_functions = [function1, function2...] 
A welcome addition to PHP4 configuration and one perpetuated in PHP5 is the ability to disable


key: chroma:document
string_value:
selected functions for security reasons. Previously, this necessitated hand -editing the C code 
from which PHP was made. Filesystem, system, and network functions should probably be the 
first to go because allowing the capability to write files and alter the system over HTTP is 
never such a safe idea.    PHP 
20 
 
max_execution_time = 30 
The function set_time_limit() won.t  work in safe mode, so this is the main way to make a


key: chroma:document
string_value:
script time out in safe mode. In Windows, you have to abort based on maximum memory 
consumed rather than time. You can also use the Apache timeout setting to timeout if you 
use Apache, but that will apply to non-PHP files on the site too. 
error_reporting = E_ALL & ~E_NOTICE 
The default value is E_ALL & ~E_NOTICE, all errors except notices. Development servers 
should be set to at least the default; only production servers should even consider a lesser 
value 
error_prepend_string = [""]


key: chroma:document
string_value:
value 
error_prepend_string = [""] 
With its bookend, error_append_string, this setting allows you to make error messages a 
different color than other text, or what  you have. 
warn_plus_overloading = Off 
This setting issues a warning if the + operator is used with strings, as in a form value. 
variables_order = EGPCS 
This configuration setting supersedes gpc_order. Both are now deprecated along with 
register_globals. It sets the order of the different variables: Environment, GET, POST,


key: chroma:document
string_value:
COOKIE, and SERVER (aka Built-in). 
 
You can change this order around. Variables will be overwritten successively in left -to-right 
order, with the rightmost one winning the hand every time. This means if you left the default 
setting and happened to use the same name for an en vironment variable, a POST variable, 
and a COOKIE variable, the COOKIE variable would own that name at the end of the process. 
In real life, this doesn't happen much. 
 
register_globals = Off


key: chroma:document
string_value:
register_globals = Off 
This setting allows you to decide whether you wish to register EGPCS variables as global. This 
is now deprecated, and as of PHP4.2, this flag is set to Off by default. Use superglobal arrays 
instead. All the major code listings in this book use superglobal arrays. 
gpc_order = GPC 
This setting has been GPC Deprecated. 
 
 
 
    PHP 
21 
 
magic_quotes_gpc = On 
This setting escapes quotes in incoming GET/POST/COOKIE data. If you use a lot of forms


key: chroma:document
string_value:
which possibly submit to themselves or other forms and display form values, you may need 
to set this directive to On or prepare to use addslashes() on string-type data. 
magic_quotes_runtime = Off 
This setting escapes quotes in incoming database and text strings. Remember that SQL adds 
slashes to single quotes and apostrophes when storing strings and does not strip them off 
when returning them. If this setting is Off, you will need to use stripslashes() when outputting


key: chroma:document
string_value:
any type of string data from a SQL database. If magic_quotes_sybase is set to On, this must 
be Off. 
magic_quotes_sybase = Off 
This setting escapes single quotes in incoming database and text strings with Sybase -style 
single quotes rather than backslashes. If magic_quotes_runtime is set to On, this must be 
Off. 
auto-prepend-file = [path/to/file] 
If a path is specified here, PHP must automatically include() it at the beginning of every PHP 
file. Include path restrictions do apply.


key: chroma:document
string_value:
file. Include path restrictions do apply. 
auto-append-file = [path/to/file] 
If a path is specified here, PHP must automatically include() it at the end of every PHP 
file.unless you escape by using the exit() function. Include path restrictions do apply . 
include_path = [DIR] 
If you set this value, you will only be allowed to include or require files from these directories. 
The include directory is generally under your document root; this is mandatory if you.re


key: chroma:document
string_value:
running in safe mode. Set this to . in order to include files from the same directory your script 
is in. Multiple directories are separated by colons: .:/usr/local/apache/htdocs:/usr/local/lib.  
doc_root = [DIR] 
If you.re using Apache, you.ve already set a document root for this server or virtual hos t in 
httpd.conf. Set this value here if you.re using safe mode or if you want to enable PHP only on 
a portion of your site (for example, only in one subdirectory of your Web root).


key: chroma:document
string_value:
file_uploads = [on/off] 
Turn on this flag if you will upload files using PHP script. 
upload_tmp_dir = [DIR] 
Do not uncomment this line unless you understand the implications of HTTP uploads!     PHP 
22 
 
session.save-handler = files 
Except in rare circumstances, you will not want to change this setting. So don't touch it.  
ignore_user_abort = [On/Off] 
This setting controls what happens if a site visitor clicks the browser.s Stop button. The default


key: chroma:document
string_value:
is On, which means that the script continues to run to completion or timeout. If the setting is 
changed to Off, the script will abort. This setting only works in module mode, not CGI. 
mysql.default_host = hostname 
The default server host to use when connecting to the database server if no other host is 
specified. 
mysql.default_user = username 
The default user name to use when connecting to the datab ase server if no other name is 
specified. 
mysql.default_password = password


key: chroma:document
string_value:
specified. 
mysql.default_password = password 
The default password to use when connecting to the database server if no other password is 
specified. 
    PHP 
23 
 
Escaping to PHP 
The PHP parsing engine needs a way to differentiate PHP code from other elements in the 
page. The mechanism for doing so is known as 'escaping to PHP.' There are four ways to do  
this: 
Canonical PHP tags 
The most universally effective PHP tag style is: 
<?php...?>


key: chroma:document
string_value:
<?php...?> 
If you use this style, you can be positive that your tags will always be correctly interpreted.  
Short-open (SGML-style) tags 
Short or short-open tags look like this: 
<?...?> 
Short tags are, as one might expect, the shortest option You must do one of two things to 
enable PHP to recognize the tags: 
 
 Choose the --enable-short-tags configuration option when you're building PHP. 
 
 Set the short_open_tag setting in your php.ini file to on. This option must be disabled


key: chroma:document
string_value:
to parse XML with PHP because the same syntax is used for XML tags. 
ASP-style tags 
ASP-style tags mimic the tags used by Active Server Pages to delineate code blocks. ASP -
style tags look like this: 
<%...%> 
To use ASP-style tags, you will need to set the configuration option in your php.ini file.  
HTML script tags 
HTML script tags look like this: 
<script language="PHP">...</script> 
 PHP ─ SYNTAX OVERVIEW    PHP 
24 
 
 
Commenting PHP Code


key: chroma:document
string_value:
24 
 
 
Commenting PHP Code 
A comment is the portion of a program that exists only for the human reader and stripped out 
before displaying the programs result. There are two commenting formats in PHP:  
 
Single-line comments: They are generally used for short explanations or notes relevant to 
the local code. Here are the examples of single line comments. 
<? 
# This is a comment, and 
# This is the second line of the comment 
// This is a comment too. Each style comments only


key: chroma:document
string_value:
print "An example with single line comments"; 
?> 
 
Multi-lines printing:  Here are the examples to print multiple lines in a single print 
statement: 
<? 
# First Example 
print <<<END 
This uses the "here document" syntax to output 
multiple lines with $variable interpolation. Note 
that the here document terminator must appear on a 
line with just a semicolon no extra whitespace! 
END; 
# Second Example 
print "This spans 
multiple lines. The newlines will be 
output as well"; 
?>


key: chroma:document
string_value:
output as well"; 
?> 
 
Multi-lines comments: They are generally used to provide pseudocode algorithms and more 
detailed explanations when necessary. The multiline style of commenting is the same as in C. 
Here are the example of multi lines comments. 
<? 
/* This is a comment with multiline 
    Author : Mohammad Mohtashim 
    Purpose: Multiline Comments Demo 
    Subject: PHP 
*/ 
print "An example with multi line comments"; 
?>    PHP 
25 
 
PHP is whitespace insensitive


key: chroma:document
string_value:
?>    PHP 
25 
 
PHP is whitespace insensitive 
Whitespace is the stuff you type that is typically invisible on the screen, including spaces, 
tabs, and carriage returns (end-of-line characters). 
 
PHP whitespace insensitive means that it almost never matters how many whitespace 
characters you have in a row.one whitespace character is the same as many such characters. 
 
For example, each of the following PHP statements that assigns the sum of 2 + 2 to the 
variable $four is equivalent:


key: chroma:document
string_value:
variable $four is equivalent: 
$four = 2 + 2; // single spaces 
$four <tab>=<tab2<tab>+<tab>2 ; // spaces and tabs 
$four = 
2+ 
2; // multiple lines 
PHP is case sensitive 
Yeah it is true that PHP is a case sensitive language. Try out the following example: 
<html> 
<body> 
<? 
$capital = 67; 
print("Variable capital is $capital<br>"); 
print("Variable CaPiTaL is $CaPiTaL<br>"); 
?> 
</body> 
</html> 
This will produce the following result: 
Variable capital is 67 
Variable CaPiTaL is


key: chroma:document
string_value:
Variable capital is 67 
Variable CaPiTaL is 
Statements are expressions terminated by semicolons 
A statement in PHP is any expression that is followed by a semicolon (;).Any sequence of valid 
PHP statements that is enclosed by the PHP tags is a valid PHP program. Here is a typical 
statement in PHP, which in this case assigns a string of characters to a variable called 
$greeting: 
 
$greeting = "Welcome to PHP!";    PHP 
26 
 
Expressions are combinations of tokens


key: chroma:document
string_value:
26 
 
Expressions are combinations of tokens 
The smallest building blocks of PHP are the indivisible tokens, such as numbers (3.14159), 
strings (.two.), variables ($two), constants (TRUE), and the special words that make up the 
syntax of PHP itself like if, else, while, for and so forth 
Braces make blocks 
Although statements cannot be combined like expressions, you can always put a sequence of 
statements anywhere a statement can go by enclosing them in a set of curly braces.


key: chroma:document
string_value:
Here both statements are equivalent: 
 
 
if (3 == 2 + 1) 
  print("Good - I haven't totally lost my mind.<br>"); 
 
if (3 == 2 + 1) 
{ 
   print("Good - I haven't totally"); 
   print("lost my mind.<br>"); 
} 
Running PHP Script from Command Prompt 
Yes you can run your PHP script on your command prompt. Assuming you have the following 
content in test.php file 
<?php 
   echo "Hello PHP!!!!!"; 
?> 
Now run this script as command prompt as follows: 
$ php test.php


key: chroma:document
string_value:
$ php test.php 
It will produce the following result 
Hello PHP!!!!! 
 
 
    PHP 
27 
 
The main way to store information in the middle of a PHP program is by using a variable.  
Here are the most important things to know about variables in PHP. 
 
 All variables in PHP are denoted with a leading dollar sign ($). 
 
 The value of a variable is the value of its most recent assignment. 
 
 Variables are assigned with the = operator, with the variable on the left-hand side and


key: chroma:document
string_value:
the expression to be evaluated on the right. 
 
 Variables can, but do not need, to be declared before assignment. 
 
 Variables in PHP do not have intrinsic types - a variable does not know in advance 
whether it will be used to store a number or a string of characters. 
 
 Variables used before they are assigned have default values. 
 
 PHP does a good job of automatically converti ng types from one to another when 
necessary. 
 
 PHP variables are Perl-like.


key: chroma:document
string_value:
necessary. 
 
 PHP variables are Perl-like. 
 
PHP has a total of eight data types which we use to construct our variables: 
 
 Integers: are whole numbers, without a decimal point, like 4195. 
 
 Doubles: are floating-point numbers, like 3.14159 or 49.1. 
 
 Booleans: have only two possible values either true or false. 
 
 NULL: is a special type that only has one value: NULL. 
 
 Strings: are sequences of characters, like 'PHP supports string operations.'


key: chroma:document
string_value:
 Arrays: are named and indexed collections of other values. 
 
 Objects: are instances of programmer -defined classes, which can package up both 
other kinds of values and functions that are specific to the class. 
 
 Resources: are special variables that hold references to resources external t o PHP 
(such as database connections). 
 
The first five are  simple types, and the next two (arrays and objects) are compound - the


key: chroma:document
string_value:
compound types can package up other arbitrary values of arbitrary type, whereas the simple 
types cannot. 
 PHP ─ VARIABLE TYPES    PHP 
28 
 
 
We will explain only simile data type in this chapters. Array and Objects will be explained 
separately. 
Integers 
They are whole numbers, without a decimal point, like 4195. They are the simplest type .they 
correspond to simple whole numbers, both positive and negative. Integer s can be assigned


key: chroma:document
string_value:
to variables, or they can be used in expressions, like so: 
$int_var = 12345; 
$another_int = -12345 + 12345; 
Integer can be in decimal (base 10), octal (base 8), and hexadecimal (base 16) format. 
Decimal format is the default, octal integers are specified with a leading 0, and hexadecimals 
have a leading 0x. 
 
For most common platforms, the largest integer is (2**31 . 1) (or 2,147,483,647), and the 
smallest (most negative) integer is . (2**31 . 1) (or .2,147,483,647). 
Doubles


key: chroma:document
string_value:
Doubles 
They like 3.14159 or 49.1. By default, doubles print with the minimum number of decimal 
places needed. For example, the code: 
$many = 2.2888800; 
$many_2 = 2.2111200; 
$few = $many + $many_2; 
print(.$many + $many_2 = $few<br>.); 
It produces the following browser output: 
2.28888 + 2.21112 = 4.5 
Boolean 
They have only two possible values either true or false. PHP provides a couple of constants 
especially for use as Booleans: TRUE and FALSE, which can be used like so: 
if (TRUE)


key: chroma:document
string_value:
if (TRUE) 
   print("This will always print<br>"); 
else 
   print("This will never print<br>");    PHP 
29 
 
Interpreting other types as Booleans 
Here are the rules for determine the "truth" of any value not already of the Boolean type:  
 
 If the value is a number, it is false if exactly equal to zero and true otherwise.  
 
 If the value is a string, it is false if the string is empty (has zero characters) or is the 
string "0", and is true otherwise.


key: chroma:document
string_value:
string "0", and is true otherwise. 
 
 Values of type NULL are always false. 
 
 If the value is an array, it is false if it contains no other values, and it is true otherwise. 
For an object, containing a value means having a member variable that has been 
assigned a value. 
 
 Valid resources are true (although some functions that return resources when they are 
successful will return FALSE when unsuccessful). 
 
 Don't use double as Booleans.


key: chroma:document
string_value:
 Don't use double as Booleans. 
 
Each of the following variables has the truth value embedded in its name when it is used in a 
Boolean context. 
$true_num = 3 + 0.14159; 
$true_str = "Tried and true" 
$true_array[49] = "An array element"; 
$false_array = array(); 
$false_null = NULL; 
$false_num = 999 - 999; 
$false_str = ""; 
NULL 
NULL is a special type that only has one value: NULL. To give a variable the NULL value, 
simply assign it like this: 
$my_var = NULL;


key: chroma:document
string_value:
simply assign it like this: 
$my_var = NULL; 
The special constant NULL is capitalized by convention, but actually it is case insensitive; you 
could just as well have typed: 
$my_var = null; 
A variable that has been assigned NULL has the following properties: 
 
 It evaluates to FALSE in a Boolean context. 
     PHP 
30 
 
 It returns FALSE when tested with IsSet() function. 
Strings 
They are sequences of characters, like "PHP supports string operations". Following are valid


key: chroma:document
string_value:
examples of string: 
$string_1 = "This is a string in double quotes"; 
$string_2 = "This is a somewhat longer, singly quoted string"; 
$string_39 = "This string has thirty-nine characters"; 
$string_0 = ""; // a string with zero characters 
Singly quoted strings are treated almost literally, whereas doubly quoted strings replace 
variables with their values as well as specially interpreting certain character sequences.  
<? 
$variable = "name"; 
$literally = 'My $variable will not print!\\n';


key: chroma:document
string_value:
$literally = 'My $variable will not print!\\n'; 
print($literally); 
$literally = "My $variable will print!\\n"; 
print($literally); 
?> 
 
This will produce the following result: 
My $variable will not print!\n 
My name will print 
There are no artificial limits on string length - within the bounds of available memory, you 
ought to be able to make arbitrarily long strings. 
 
Strings that are delimited by double quotes (as in "this") are preprocessed in both the 
following two ways by PHP:


key: chroma:document
string_value:
following two ways by PHP: 
 
 Certain character sequences beginning with backslash ( \) are replaced with special 
characters 
 
 Variable names (starting with $) are replaced with string representations of their 
values. 
 
The escape-sequence replacements are: 
 
 \n is replaced by the newline character 
    PHP 
31 
 
 \r is replaced by the carriage-return character 
 
 \t is replaced by the tab character 
 
 \$ is replaced by the dollar sign itself ($)


key: chroma:document
string_value:
 \$ is replaced by the dollar sign itself ($) 
 
 \" is replaced by a single double-quote (") 
 
 \\ is replaced by a single backslash (\) 
 
Here Document 
You can assign multiple lines to a single string variable using here document: 
<?php 
 
$channel =<<<_XML_ 
<channel> 
<title>What's For Dinner<title> 
<link>http://menu.example.com/<link> 
<description>Choose what to eat tonight.</description> 
</channel> 
_XML_; 
 
echo <<<END 
This uses the "here document" syntax to output


key: chroma:document
string_value:
This uses the "here document" syntax to output 
multiple lines with variable interpolation. Note 
that the here document terminator must appear on a 
line with just a semicolon. no extra whitespace! 
<br /> 
END; 
 
print $channel; 
?> 
This will produce the following result: 
This uses the "here document" syntax to output 
 
multiple lines with variable interpolation. Note    PHP 
32 
 
that the here document terminator must appear on a 
line with just a semicolon. no extra whitespace!


key: chroma:document
string_value:
<channel> 
<title>What's For Dinner<title> 
<link>http://menu.example.com/<link> 
<description>Choose what to eat tonight.</description> 
 
 
 
Variable Naming 
Rules for naming a variable is: 
 
 Variable names must begin with a letter or underscore character. 
 
 A variable name can consist of numbers, letters, underscor es but you cannot use 
characters like + , - , % , ( , ) . & , etc 
 
There is no size limit for variables. 
PHP – V ariables


key: chroma:document
string_value:
PHP – V ariables 
Scope can be defined as the range of availability a variable has to the program in which it is 
declared. PHP variables can be one of four scope types: 
 
 Local variables 
 
 Function parameters 
 
 Global variables 
 
 Static variables 
PHP Local Variables 
A variable declared in a function is considered local; that is, it can be referenced solely in that 
function. Any assignment outside of that function will be considered to be an entirely different


key: chroma:document
string_value:
variable from the one contained in the function: 
<? 
$x = 4; 
function assignx () {    PHP 
33 
 
$x = 0; 
print "\$x inside function is $x.  
"; 
} 
assignx(); 
print "\$x outside of function is $x.  
"; 
?> 
This will produce the following result. 
$x inside function is 0. 
$x outside of function is 4. 
PHP Function Parameters 
PHP Functions are covered in detail in  PHP Function Chapter. In short, a function is a small


key: chroma:document
string_value:
unit of program which can take some input in the form of parameters and does some 
processing and may return a value. 
 
Function parameters are declared after the function name and inside parentheses. They are 
declared much like a typical variable would be: 
<? 
// multiply a value by 10 and return it to the caller 
function multiply ($value) { 
    $value = $value * 10; 
    return $value; 
} 
 
$retval = multiply (10); 
Print "Return value is $retval\n"; 
?>


key: chroma:document
string_value:
Print "Return value is $retval\n"; 
?> 
This will produce the following result. 
Return value is 100    PHP 
34 
 
PHP Global Variables 
In contrast to local variables, a global variable can be accessed in any part of the program. 
However, in order to be modified, a global variable must be explicitly declared to be global in 
the func tion in which it is to be modified. This is accomplished, conveniently enough, by


key: chroma:document
string_value:
placing the keyword  GLOBAL in front of the variable that should be recognized as global. 
Placing this keyword in front of an already existing variable tells PHP to use the variable having 
that name. Consider an example: 
<? 
$somevar = 15; 
function addit() { 
GLOBAL $somevar; 
$somevar++; 
print "Somevar is $somevar"; 
} 
addit(); 
?> 
 
 
 
This will produce the following result. 
Somevar is 16 
PHP Static V ariables


key: chroma:document
string_value:
Somevar is 16 
PHP Static V ariables 
The final type of variable scoping that I discuss is known as static. In contrast to the variables 
declared as function parameters, which are destroyed on the function's exit, a static variable 
will not lose its value when the function exits and will still hold that value should the function 
be called again. 
 
You can declare a variable to be static simply by placing the keyword STATIC in front of the 
variable name. 
<? 
function keep_track() {


key: chroma:document
string_value:
variable name. 
<? 
function keep_track() { 
   STATIC $count = 0; 
   $count++; 
   print $count; 
   print " 
";    PHP 
35 
 
} 
keep_track(); 
keep_track(); 
keep_track(); 
?> 
This will produce the following result. 
1 
2 
3 
    PHP 
36 
 
A constant is a name or an identifier for a simple value. A constant value cannot change 
during the execution of the script. By default , a constant is case -sensitive. By convention,


key: chroma:document
string_value:
constant identifiers are always uppercase. A constant name starts with a letter or underscore, 
followed by any number of letters, numbers, or underscores. If you have defined a constant, 
it can never be changed or undefined. 
 
To define a constant you have to use define() function and to retrieve the value of a constant, 
you have to simply specifying its name. Unlike with variables, you do not need to have a


key: chroma:document
string_value:
constant with a $. You can also use the function constant() to read a constant's va lue if you 
wish to obtain the constant's name dynamically. 
constant() function 
As indicated by the name, this function will return the value of the constant. 
 
This is useful when you want to retrieve value of a constant, but you do not know its name, 
i.e., it is stored in a variable or returned by a function. 
constant() example 
<?php 
 
define("MINSIZE", 50); 
 
echo MINSIZE;


key: chroma:document
string_value:
<?php 
 
define("MINSIZE", 50); 
 
echo MINSIZE; 
echo constant("MINSIZE"); // same thing as the previous line 
 
?> 
Only scalar data (boolean, integer, float and string) can be contained in constants. 
Differences between constants and variables are 
 There is no need to write a dollar sign ($) before a constant, where as in Variable one 
has to write a dollar sign. 
 
 Constants cannot be defined by simple assignment, they may only be defined using 
the define() function.


key: chroma:document
string_value:
the define() function. 
 
 Constants may be defined and accessed anywhere without regard to variable scoping 
rules. 
 PHP ─ CONSTANTS    PHP 
37 
 
 
 Once the Constants have been set, may not be redefined or undefined. 
 
Valid and invalid constant names 
// Valid constant names 
define("ONE",     "first thing"); 
define("TWO2",    "second thing"); 
define("THREE_3", "third thing") 
// Invalid constant names 
define("2TWO",    "second thing"); 
define("__THREE__", "third value");


key: chroma:document
string_value:
define("__THREE__", "third value");  
PHP Magic constants 
PHP provides a large number of predefined constants to any script which it runs. 
 
There are five magical constants that change depending on where they are used. For example, 
the value of __LINE__ depends on the line that it's used on in your script. These special 
constants are case-insensitive and are as follows: 
 
The following table lists a few "magical" PHP constants along with their description:  
 
Name Description


key: chroma:document
string_value:
Name Description 
__LINE__ The current line number of the file. 
__FILE__ The full path and filename of the file. If used inside an include, the 
name of the included file is returned. Since PHP 
4.0.2, __FILE__ always contains an absolute path whereas in older 
versions it contained relative path under some circumstances. 
__FUNCTION__ The function name. (Added in PHP 4.3.0) As  of PHP 5 this constant 
returns the function name as it was declared (case-sensitive). In PHP


key: chroma:document
string_value:
4 its value is always lowercased. 
__CLASS__ The class name. (Added in PHP 4.3.0) As of PHP 5 this constant 
returns the class name as it was declared (case-sensitive). In PHP 4 
its value is always lowercased. 
__METHOD__ The class method name. (Added in PHP 5.0.0) The method name is 
returned as it was declared (case-sensitive).    PHP 
38 
 
What is Operator? Simple answer can be given using expression  4 + 5 is equal to 9. Here


key: chroma:document
string_value:
4 and 5 are called operands and + is called operator. PHP language supports following type 
of operators. 
 
 Arithmetic Operators 
 
 Comparison Operators 
 
 Logical (or Relational) Operators 
 
 Assignment Operators 
 
 Conditional (or ternary) Operators 
 
Let’s have a look on all operators one by one. 
Arithmetic Operators  
The following arithmetic operators are supported by PHP language: 
 
Assume variable A holds 10 and variable B holds 20 then: 
 
Operator Description Example


key: chroma:document
string_value:
Operator Description Example 
+ Adds two operands A + B will give 30 
- Subtracts second operand from the first A - B will give -10 
* Multiply both operands A * B will give 200 
/ Divide the numerator by denominator B / A will give 2 
% Modulus Operator and remainder of after an 
integer division 
B % A will give 0 
++ Increment operator, increases integer value by 
one 
A++ will give 11 
-- Decrement operator, decreases integer value 
by one 
A-- will give 9 
 
 PHP ─ OPERATOR TYPES    PHP


key: chroma:document
string_value:
A-- will give 9 
 
 PHP ─ OPERATOR TYPES    PHP 
39 
 
Example 
Try the following example to understand all the arithmetic operators. Copy and paste following 
PHP program in test.php file and  keep it in your PHP Server's document root and browse it 
using any browser. 
 
<html> 
<head><title>Arithmetical Operators</title><head> 
<body> 
<?php 
    $a = 42; 
    $b = 20; 
     
    $c = $a + $b; 
    echo "Addition Operation Result: $c <br/>"; 
    $c = $a - $b;


key: chroma:document
string_value:
$c = $a - $b; 
    echo "Subtraction Operation Result: $c <br/>"; 
    $c = $a * $b; 
    echo "Multiplication Operation Result: $c <br/>"; 
    $c = $a / $b; 
    echo "Division Operation Result: $c <br/>"; 
    $c = $a % $b; 
    echo "Modulus Operation Result: $c <br/>"; 
    $c = $a++;  
    echo "Increment Operation Result: $c <br/>"; 
    $c = $a--;  
    echo "Decrement Operation Result: $c <br/>"; 
?> 
</body> 
</html> 
This will produce the following result:


key: chroma:document
string_value:
</html> 
This will produce the following result: 
Addition Operation Result: 62 
Subtraction Operation Result: 22 
Multiplication Operation Result: 840 
Division Operation Result: 2.1    PHP 
40 
 
Modulus Operation Result: 2 
Increment Operation Result: 42 
Decrement Operation Result: 43 
     PHP 
41 
 
End of ebook preview 
If you liked what you saw… 
Buy it from our store @ https://store.tutorialspoint.com


