<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:st1 = 
"urn:schemas-microsoft-com:office:smarttags"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16414" name=GENERATOR><!--[if !mso]>
<STYLE>v\:* {
        BEHAVIOR: url(#default#VML)
}
o\:* {
        BEHAVIOR: url(#default#VML)
}
w\:* {
        BEHAVIOR: url(#default#VML)
}
..shape {
        BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]--><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="place"></o:SmartTagType><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="country-region"></o:SmartTagType><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="address"></o:SmartTagType><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="City"></o:SmartTagType><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="Street"></o:SmartTagType><!--[if !mso]>
<STYLE>st1\:* {
        BEHAVIOR: url(#default#ieooui)
}
</STYLE>
<![endif]-->
<STYLE>@page Section1 {size: 612.0pt 792.0pt; margin: 72.0pt 90.0pt 72.0pt 90.0pt; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.EmailStyle17 {
        COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: personal-compose
}
DIV.Section1 {
        page: Section1
}
</STYLE>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-CA vLink=purple link=blue>
<DIV dir=ltr align=left><SPAN class=038044712-11062007><FONT face=Arial 
color=#0000ff size=2>typo I spelled RETURN wrong - but evidentally I think I got 
that from you :)</FONT></SPAN></DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> 
postgis-users-bounces@postgis.refractions.net 
[mailto:postgis-users-bounces@postgis.refractions.net] <B>On Behalf Of </B>Obe, 
Regina<BR><B>Sent:</B> Monday, June 11, 2007 8:42 AM<BR><B>To:</B> PostGIS Users 
Discussion<BR><B>Subject:</B> RE: [postgis-users] (no 
subject)<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2>Gary,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2>1) That's the old way of writing pgsql functions.  I 
forget the transition period - I think it was around 8.0 - the new way uses $ 
dollar quoting and doesn't require aliasing in pgsql althought it still 
does in sql procedural.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2>2) If you are using RECORD objects, I think you need to 
specify the field datatypes before you can use it.  </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2>3) That whole record thing seems like an unnecessary step 
anyway.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2>Try instead - hope I didn't make any mistakes since I 
didn't test it in my typing (you might be able to skip the declare part 
since I've eradicated all the variables)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=302592412-11062007><FONT face=Arial size=2>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#0000ff>CREATE 
OR REPLACE FUNCTION vts_insert_stop(<SPAN class=302592412-11062007>stopnum 
</SPAN>text, <SPAN class=302592412-11062007>stopdes </SPAN>text, <SPAN 
class=302592412-11062007>stopeasting </SPAN>numeric, <SPAN 
class=302592412-11062007>stopnorthing </SPAN>numeric, <SPAN 
class=302592412-11062007>projection </SPAN>numeric)<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#0000ff>  
RETURNS numeric AS<o:p></o:p></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=#0000ff><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><SPAN 
class=302592412-11062007>$BODY$</SPAN></SPAN></FONT><FONT face="Courier New" 
color=#0000ff size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>DECLARE<o:p></o:p></FONT></SPAN></FONT></P>
<P class=MsoNormal>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff><o:p></o:p></FONT></SPAN></FONT></P><FONT face="Courier New" 
size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>BEGIN<o:p></o:p></FONT></SPAN></FONT>
<P></P>
<P class=MsoNormal>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff><o:p></o:p></FONT></SPAN></FONT></P><FONT face="Courier New" 
size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>      <o:p></o:p></FONT></SPAN></FONT>
<P></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>      INSERT INTO 
vts_route_stops(stop_number,stop_description,stop_latitude,stop_longitude)</FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#0000ff><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p><SPAN 
class=302592412-11062007>        <FONT 
face=Arial>SELECT stopnum, stopdes, Y(SubSel.transformed_geom), 
X(SubSel.transformed_geom)</FONT></SPAN></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT size=+0><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p><SPAN 
class=302592412-11062007><FONT 
color=#0000ff>            
</FONT><FONT face=Arial><FONT color=#0000ff>FROM </FONT></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>        <SPAN 
class=302592412-11062007>(</SPAN>SELECT SetSRID(<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>          
Transform(</FONT></SPAN></FONT><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>GeomFromText(</FONT></SPAN></FONT><FONT face="Courier New" 
size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>'POINT(' || stopeasting || ' ' stopnorthing || ')', 
projection</FONT></SPAN></FONT><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#0000ff>), 
4326</FONT></SPAN></FONT><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>),</FONT></SPAN></FONT><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#0000ff>-1) AS 
transformed_geom) 
SubSel;</FONT></SPAN></FONT></FONT></SPAN></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=#0000ff size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>      RERTURN 
void;<o:p></o:p></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=#0000ff size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT 
color=#0000ff>END</FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#0000ff><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><SPAN 
class=302592412-11062007>$BODY$</SPAN></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#0000ff>  
LANGUAGE 'plpgsql' 
VOLATILE;<o:p></o:p></FONT></SPAN></FONT></P></FONT></SPAN></DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> 
postgis-users-bounces@postgis.refractions.net 
[mailto:postgis-users-bounces@postgis.refractions.net] <B>On Behalf Of </B>Gary 
Townsend<BR><B>Sent:</B> Friday, June 08, 2007 5:17 PM<BR><B>To:</B> 
postgis-users@postgis.refractions.net<BR><B>Subject:</B> [postgis-users] (no 
subject)<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Below is a function I am trying to 
create that will take a series of geographic points form a UTM projection and 
translate it to lat/long that’s not the problem though the translation works 
wonderfully as a separate select statement. I’m trying to encapsulate this into 
a function now and I am getting a problem returned saying: 
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">ERROR: syntax error at or near 
"$2"<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">SQL state: 
42601<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Character: 
137<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Context: PL/pgSQL function 
"vts_insert_stop" line 10 at select into variables<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I’m not sure where I’ve gone 
sideways on this but seeing as how I’m still learning the pgplsql syntax I 
figured it could be anywhere I thought maybe someone here may have a better 
soloution to what I’m trying to do or can see what I’m doin 
wrong.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">CREATE OR REPLACE FUNCTION 
vts_insert_stop(text, text, numeric, numeric, 
numeric)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">  RETURNS numeric 
AS<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">'<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">DECLARE<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
stopnum ALIAS for $1;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
stopdes ALIAS for $2;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
stopeasting ALIAS for $3;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
stopnorthing ALIAS for $4;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
projection ALIAS for $5;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
transCoord RECORD;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">BEGIN<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
SELECT INTO transCoord X(SubSel.transformed_geom), Y(SubSel.transformed_geom) 
FROM (<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  SELECT SetSRID(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    Transform(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
      GeomFromText(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">            
''POINT('' || stopeasting || '' '' stopnorthing || '')'', 
projection<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
      ), 4326<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    ),<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  -1) AS transformed_geom) SubSel;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
INSERT INTO 
vts_route_stops(stop_number,stop_description,stop_latitude,stop_longitude)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
VALUES(stopnum,stopdes,transCoord.Y,transCoord.X);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
RERTURN void;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">END'<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">  LANGUAGE 'plpgsql' 
VOLATILE;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=maroon size=3><SPAN 
style="FONT-SIZE: 12pt; COLOR: maroon; FONT-FAMILY: Arial">                                                                                                                     
<o:p></o:p></SPAN></FONT></P>
<TABLE class=MsoTableGrid style="BORDER-COLLAPSE: collapse" cellSpacing=0 
cellPadding=0 border=0>
  <TBODY>
  <TR style="HEIGHT: 64.15pt" height=86>
    <TD 
    style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 53.3pt; PADDING-TOP: 0cm; HEIGHT: 64.15pt" 
    vAlign=top width=71 height=86>
      <P class=MsoNormal><FONT face=Arial color=maroon size=3><SPAN 
      style="FONT-SIZE: 12pt; COLOR: maroon; FONT-FAMILY: Arial"><IMG 
      id=_x0000_i1025 height=45 src="cid:038044712@11062007-2890" 
      width=50><o:p></o:p></SPAN></FONT></P></TD>
    <TD 
    style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 297pt; PADDING-TOP: 0cm; HEIGHT: 64.15pt" 
    vAlign=top width=396 height=86>
      <P class=MsoNormal><B><FONT face=Arial color=maroon size=2><SPAN 
      style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Arial">Gary 
      Townsend (Systems Programmer & 
      Developer )<o:p></o:p></SPAN></FONT></B></P>
      <P class=MsoNormal><B><FONT face=Arial color=#333300 size=2><SPAN 
      style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #333300; FONT-FAMILY: Arial">Spatial 
      Mapping Ltd.<o:p></o:p></SPAN></FONT></B></P>
      <P class=MsoNormal><st1:address 
      style="BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(res://ietag.dll/#34/#1001); BACKGROUND-REPEAT: repeat-x" 
      tabIndex=0 w:st="on"><st1:Street w:st="on"><FONT face=Arial size=1><SPAN 
      style="FONT-SIZE: 8pt; FONT-FAMILY: Arial">#200 484 2<SUP>nd</SUP> 
      Ave.</SPAN></FONT></st1:Street><FONT face=Arial size=1><SPAN 
      style="FONT-SIZE: 8pt; FONT-FAMILY: Arial"> <st1:City w:st="on">Prince 
      George</st1:City></SPAN></FONT></st1:address><FONT face=Arial size=1><SPAN 
      style="FONT-SIZE: 8pt; FONT-FAMILY: Arial">, B.C., <st1:place 
      w:st="on"><st1:country-region 
      w:st="on">Canada</st1:country-region></st1:place> V2L 
      2Z7<o:p></o:p></SPAN></FONT></P>
      <P class=MsoNormal><FONT face=Arial size=1><SPAN 
      style="FONT-SIZE: 8pt; FONT-FAMILY: Arial">Phone: 250 564 
      1928<o:p></o:p></SPAN></FONT></P>
      <P class=MsoNormal><FONT face=Arial size=1><SPAN 
      style="FONT-SIZE: 8pt; FONT-FAMILY: Arial">Fax: 250 564 
      0751<o:p></o:p></SPAN></FONT></P>
      <P class=MsoNormal><FONT face=Arial color=maroon size=3><SPAN 
      style="FONT-SIZE: 12pt; COLOR: maroon; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P></TD></TR></TBODY></TABLE>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P></DIV>
<P>
<HR SIZE=1>

<P></P>
<P><STRONG>The substance of this message, including any attachments, may be 
confidential, legally privileged and/or exempt from disclosure pursuant to 
Massachusetts law. It is intended solely for the addressee. If you received this 
in error, please contact the sender and delete the material from any computer. 
</STRONG></P></BODY></HTML>

<HTML><BODY><P><hr size=1></P>
<P><STRONG>
The substance of this message, including any attachments, may be confidential, legally privileged and/or exempt from disclosure pursuant to Massachusetts law. It is intended solely for the addressee. If you received this in error, please contact the sender and delete the material from any computer.
</STRONG></P></BODY></HTML>