|
Download the Eye4Software GPS Toolkit fully functional 30 day trial version for free |
|
Browse through the Eye4Software GPS Toolkit manual |
UTM stands for Universal Transverse Mercator. It is a Transverse Mercator map projection which can be used at any place on the globe. To cover the whole earth, the system is divided into multiple grids, using 60 zones, each covering 6 degrees which is about 800 kilometers in width.
Each zone is defined for both the northern and southern hemisphere. Therefore the zones are called zone 1N - zone 60N for the northern hemisphere and zone 1S - zone 60S for the southern hemisphere.
This document is going to explain, how you can add support for UTM coordinates to your VBScript scripts.
The following table describes which zone should be used on any given location on the earth, and its associated Transverse Mercator parameters:
| Zone | Longitude Range | Hemisphere | False Northing | False Easting | Latitude Origin | Longitude Origin | Scale Factor |
|---|---|---|---|---|---|---|---|
| 1N | 180W - 174W | N | 0 | 500000 | 0 | -177 | 0.9996 |
| 1S | 180W - 174W | S | 10000000 | 500000 | 0 | -177 | 0.9996 |
| 2N | 174W - 168W | N | 0 | 500000 | 0 | -171 | 0.9996 |
| 2S | 174W - 168W | S | 10000000 | 500000 | 0 | -171 | 0.9996 |
| 3N | 168W - 162W | N | 0 | 500000 | 0 | -165 | 0.9996 |
| 3S | 168W - 162W | S | 10000000 | 500000 | 0 | -165 | 0.9996 |
| 4N | 162W - 156W | N | 0 | 500000 | 0 | -159 | 0.9996 |
| 4S | 162W - 156W | S | 10000000 | 500000 | 0 | -159 | 0.9996 |
| 5N | 156W - 150W | N | 0 | 500000 | 0 | -153 | 0.9996 |
| 5S | 156W - 150W | S | 10000000 | 500000 | 0 | -153 | 0.9996 |
| 6N | 150W - 144W | N | 0 | 500000 | 0 | -147 | 0.9996 |
| 6S | 150W - 144W | S | 10000000 | 500000 | 0 | -147 | 0.9996 |
| 7N | 144W - 138W | N | 0 | 500000 | 0 | -141 | 0.9996 |
| 7S | 144W - 138W | S | 10000000 | 500000 | 0 | -141 | 0.9996 |
| 8N | 138W - 132W | N | 0 | 500000 | 0 | -135 | 0.9996 |
| 8S | 138W - 132W | S | 10000000 | 500000 | 0 | -135 | 0.9996 |
| 9N | 132W - 126W | N | 0 | 500000 | 0 | -129 | 0.9996 |
| 9S | 132W - 126W | S | 10000000 | 500000 | 0 | -129 | 0.9996 |
| 10N | 126W - 120W | N | 0 | 500000 | 0 | -123 | 0.9996 |
| 10S | 126W - 120W | S | 10000000 | 500000 | 0 | -123 | 0.9996 |
| 11N | 120W - 114W | N | 0 | 500000 | 0 | -117 | 0.9996 |
| 11S | 120W - 114W | S | 10000000 | 500000 | 0 | -117 | 0.9996 |
| 12N | 114W - 108W | N | 0 | 500000 | 0 | -111 | 0.9996 |
| 12S | 114W - 108W | S | 10000000 | 500000 | 0 | -111 | 0.9996 |
| 13N | 108W - 102W | N | 0 | 500000 | 0 | -105 | 0.9996 |
| 13S | 108W - 102W | S | 10000000 | 500000 | 0 | -105 | 0.9996 |
| 14N | 102W - 096W | N | 0 | 500000 | 0 | -99 | 0.9996 |
| 14S | 102W - 096W | S | 10000000 | 500000 | 0 | -99 | 0.9996 |
| 15N | 096W - 090W | N | 0 | 500000 | 0 | -93 | 0.9996 |
| 15S | 096W - 090W | S | 10000000 | 500000 | 0 | -93 | 0.9996 |
| 16N | 090W - 084W | N | 0 | 500000 | 0 | -87 | 0.9996 |
| 16S | 090W - 084W | S | 10000000 | 500000 | 0 | -87 | 0.9996 |
| 17N | 084W - 078W | N | 0 | 500000 | 0 | -81 | 0.9996 |
| 17S | 084W - 078W | S | 10000000 | 500000 | 0 | -81 | 0.9996 |
| 18N | 078W - 072W | N | 0 | 500000 | 0 | -75 | 0.9996 |
| 18S | 078W - 072W | S | 10000000 | 500000 | 0 | -75 | 0.9996 |
| 19N | 072W - 066W | N | 0 | 500000 | 0 | -69 | 0.9996 |
| 19S | 072W - 066W | S | 10000000 | 500000 | 0 | -69 | 0.9996 |
| 20N | 066W - 060W | N | 0 | 500000 | 0 | -63 | 0.9996 |
| 20S | 066W - 060W | S | 10000000 | 500000 | 0 | -63 | 0.9996 |
| 21N | 060W - 054W | N | 0 | 500000 | 0 | -57 | 0.9996 |
| 21S | 060W - 054W | S | 10000000 | 500000 | 0 | -57 | 0.9996 |
| 22N | 504W - 048W | N | 0 | 500000 | 0 | -51 | 0.9996 |
| 22S | 054W - 048W | S | 10000000 | 500000 | 0 | -51 | 0.9996 |
| 23N | 048W - 042W | N | 0 | 500000 | 0 | -45 | 0.9996 |
| 23S | 048W - 042W | S | 10000000 | 500000 | 0 | -45 | 0.9996 |
| 24N | 042W - 036W | N | 0 | 500000 | 0 | -39 | 0.9996 |
| 24S | 042W - 036W | S | 10000000 | 500000 | 0 | -39 | 0.9996 |
| 25N | 036W - 030W | N | 0 | 500000 | 0 | -33 | 0.9996 |
| 25S | 036W - 030W | S | 10000000 | 500000 | 0 | -33 | 0.9996 |
| 26N | 030W - 024W | N | 0 | 500000 | 0 | -27 | 0.9996 |
| 26S | 030W - 024W | S | 10000000 | 500000 | 0 | -27 | 0.9996 |
| 27N | 024W - 018W | N | 0 | 500000 | 0 | -21 | 0.9996 |
| 27S | 024W - 018W | S | 10000000 | 500000 | 0 | -21 | 0.9996 |
| 28N | 018W - 012W | N | 0 | 500000 | 0 | -15 | 0.9996 |
| 28S | 018W - 012W | S | 10000000 | 500000 | 0 | -15 | 0.9996 |
| 29N | 012W - 006W | N | 0 | 500000 | 0 | -9 | 0.9996 |
| 29S | 012W - 006W | S | 10000000 | 500000 | 0 | -9 | 0.9996 |
| 30N | 006W - 000W | N | 0 | 500000 | 0 | -3 | 0.9996 |
| 30S | 006W - 000W | S | 10000000 | 500000 | 0 | -3 | 0.9996 |
| 31N | 000E - 006E | N | 0 | 500000 | 0 | 3 | 0.9996 |
| 31S | 000E - 006E | S | 10000000 | 500000 | 0 | 3 | 0.9996 |
| 32N | 006E - 012E | N | 0 | 500000 | 0 | 9 | 0.9996 |
| 32S | 006E - 012E | S | 10000000 | 500000 | 0 | 9 | 0.9996 |
| 33N | 012E - 018E | N | 0 | 500000 | 0 | 15 | 0.9996 |
| 33S | 012E - 018E | S | 10000000 | 500000 | 0 | 15 | 0.9996 |
| 34N | 018E - 024E | N | 0 | 500000 | 0 | 21 | 0.9996 |
| 34S | 018E - 024E | S | 10000000 | 500000 | 0 | 21 | 0.9996 |
| 35N | 024E - 030E | N | 0 | 500000 | 0 | 27 | 0.9996 |
| 35S | 024E - 030E | S | 10000000 | 500000 | 0 | 27 | 0.9996 |
| 36N | 030E - 036E | N | 0 | 500000 | 0 | 33 | 0.9996 |
| 36S | 030E - 036E | S | 10000000 | 500000 | 0 | 33 | 0.9996 |
| 37N | 036E - 042E | N | 0 | 500000 | 0 | 39 | 0.9996 |
| 37S | 036E - 042E | S | 10000000 | 500000 | 0 | 39 | 0.9996 |
| 38N | 042E - 048E | N | 0 | 500000 | 0 | 45 | 0.9996 |
| 38S | 042E - 048E | S | 10000000 | 500000 | 0 | 45 | 0.9996 |
| 39N | 048E - 054E | N | 0 | 500000 | 0 | 51 | 0.9996 |
| 39S | 048E - 054E | S | 10000000 | 500000 | 0 | 51 | 0.9996 |
| 40N | 054E - 060E | N | 0 | 500000 | 0 | 57 | 0.9996 |
| 40S | 054E - 060E | S | 10000000 | 500000 | 0 | 57 | 0.9996 |
| 41N | 060E - 066E | N | 0 | 500000 | 0 | 63 | 0.9996 |
| 41S | 060E - 066E | S | 10000000 | 500000 | 0 | 63 | 0.9996 |
| 42N | 066E - 072E | N | 0 | 500000 | 0 | 69 | 0.9996 |
| 42S | 066E - 072E | S | 10000000 | 500000 | 0 | 69 | 0.9996 |
| 43N | 072E - 078E | N | 0 | 500000 | 0 | 75 | 0.9996 |
| 43S | 072E - 078E | S | 10000000 | 500000 | 0 | 75 | 0.9996 |
| 44N | 078E - 084E | N | 0 | 500000 | 0 | 81 | 0.9996 |
| 44S | 078E - 084E | S | 10000000 | 500000 | 0 | 81 | 0.9996 |
| 45N | 084E - 090E | N | 0 | 500000 | 0 | 87 | 0.9996 |
| 45S | 084E - 090E | S | 10000000 | 500000 | 0 | 87 | 0.9996 |
| 46N | 090E - 096E | N | 0 | 500000 | 0 | 93 | 0.9996 |
| 46S | 090E - 096E | S | 10000000 | 500000 | 0 | 93 | 0.9996 |
| 47N | 096E - 102E | N | 0 | 500000 | 0 | 99 | 0.9996 |
| 47S | 096E - 102E | S | 10000000 | 500000 | 0 | 99 | 0.9996 |
| 48N | 102E - 108E | N | 0 | 500000 | 0 | 105 | 0.9996 |
| 48S | 102E - 108E | S | 10000000 | 500000 | 0 | 105 | 0.9996 |
| 49N | 108E - 114E | N | 0 | 500000 | 0 | 111 | 0.9996 |
| 49S | 108E - 114E | S | 10000000 | 500000 | 0 | 111 | 0.9996 |
| 50N | 114E - 120E | N | 0 | 500000 | 0 | 117 | 0.9996 |
| 50S | 114E - 120E | S | 10000000 | 500000 | 0 | 117 | 0.9996 |
| 51N | 120E - 126E | N | 0 | 500000 | 0 | 123 | 0.9996 |
| 51S | 120E - 126E | S | 10000000 | 500000 | 0 | 123 | 0.9996 |
| 52N | 126E - 132E | N | 0 | 500000 | 0 | 129 | 0.9996 |
| 52S | 126E - 132E | S | 10000000 | 500000 | 0 | 129 | 0.9996 |
| 53N | 132E - 138E | N | 0 | 500000 | 0 | 135 | 0.9996 |
| 53S | 132E - 138E | S | 10000000 | 500000 | 0 | 135 | 0.9996 |
| 54N | 138E - 144E | N | 0 | 500000 | 0 | 141 | 0.9996 |
| 54S | 138E - 144E | S | 10000000 | 500000 | 0 | 141 | 0.9996 |
| 55N | 144E - 150E | N | 0 | 500000 | 0 | 147 | 0.9996 |
| 55S | 144E - 150E | S | 10000000 | 500000 | 0 | 147 | 0.9996 |
| 56N | 150E - 156E | N | 0 | 500000 | 0 | 153 | 0.9996 |
| 56S | 150E - 156E | S | 10000000 | 500000 | 0 | 153 | 0.9996 |
| 57N | 156E - 162E | N | 0 | 500000 | 0 | 159 | 0.9996 |
| 57S | 156E - 162E | S | 10000000 | 500000 | 0 | 159 | 0.9996 |
| 58N | 162E - 168E | N | 0 | 500000 | 0 | 165 | 0.9996 |
| 58S | 162E - 168E | S | 10000000 | 500000 | 0 | 165 | 0.9996 |
| 59N | 168E - 174E | N | 0 | 500000 | 0 | 171 | 0.9996 |
| 59S | 168E - 174E | S | 10000000 | 500000 | 0 | 171 | 0.9996 |
| 60N | 174E - 180E | N | 0 | 500000 | 0 | 177 | 0.9996 |
| 60S | 174E - 180E | S | 10000000 | 500000 | 0 | 177 | 0.9996 |
The Eye4Software GPS toolkit allows software developers to add GPS functionality to their own programs without the need to have any knowledge on serial communications and GPS protocols like RS-232 and NMEA0183.
The product can be used in many programming environments, such as Visual Basic, Visual C++, Visual Studio.Net, Borland C++ Builder, Borland Delphi and VBA, but also web oriented applications such as ASP, ASP.NET and PHP, and all other programming environments that support ActiveX.
First you must have Visual Studio with ASP.NET support (C# or VB) and the Eye4Software GPS Component installed on your computer. You can download the Eye4Software GPS Component here.
You also need a ASP.NET webserver running on your PC or Server. An example of a good webserver that is able to run ASP.NET code is IIS. This server is included in most Windows versions (Except Home Editions).
From Visual Studio, you can create the project by selecting "New..." => "Web Site..." from the "File" menu. This tutorial has been written for use with Visual Studio 2008, but will work for other versions also.
Select "ASP.NET Web Site" as template, and select the directory where you want to create the website. Depending on the Visual Studio version you are using, you are also able to set the target .NET framework. The GPS toolkit can be used with all versions of the .NET framework.
Now click the "OK" button. The project wizard will create and open the "Default.aspx" source window.
In order to declare and create the objects from your ASP.NET Web Site, you need to add a reference to the ActiveX object, by choosing the "Add Reference..." option from the "Website" menu. A list of components installed on the system is displayed. Click the "COM" tab, and select the "Eye4Software GPS Toolkit 3.2" option and finally click "OK".
Add the following line to the code behind your ASP.NET page (for instance, default.aspx.cs) to import the GpsToolkit namespace:
using GpsToolkit;
Add the following line to the class where you want to use the GPS functionality to declare the objects:
public GpsProjection objGpsProjection; public GpsDatumParameters objGpsDatum;
To create instances of the objects, paste the following code in the Page_Load handler of the class:
objGpsProjection = new GpsProjection(); objGpsDatum = new GpsDatumParameters();
The following step comprises adding the controls to your webform (if needed), for instance input fields for source and destination coordinates, and a button to start the calculation.
The source code below demonstrates how to add latitude / longitude to UTM transformation functionality to your webpage using the GPS Toolkit:
default.aspx
<%@ Page Language="C#" AutoEventWireup="True" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server" method="post" >
<div>
<hr />
Eye4Software GPS Toolkit UTM conversion demo</div>
<hr />
<table style="width:100%;">
<tr>
<td>Latitude:</td>
<td>
<asp:TextBox ID="textLatitude" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>Longitude:</td>
<td>
<asp:TextBox ID="textLongitude" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td> </td>
<td>
<asp:Button ID="buttonSubmit" runat="server" Text="Calculate" onclick="buttonSubmit_Click" />
</td>
</tr>
<tr>
<td>Result:</td>
<td>
<asp:TextBox ID="textResult" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>Northing:</td>
<td>
<asp:TextBox ID="textNorthing" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>Easting:</td>
<td>
<asp:TextBox ID="textEasting" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>Zone:</td>
<td>
<asp:TextBox ID="textZone" runat="server"></asp:TextBox>
</td>
</tr>
</table>
</form>
<hr />
</body>
</html>
default.aspx.cs
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using GpsToolkit;
public partial class _Default : System.Web.UI.Page
{
public GpsProjection objGpsProjection;
public GpsDatumParameters objGpsDatum;
protected void Page_Load(object sender, EventArgs e)
{
objGpsProjection = new GpsProjection();
objGpsDatum = new GpsDatumParameters();
}
protected void buttonSubmit_Click(object sender, EventArgs e)
{
objGpsDatum.LoadFromId ( 4230 );
objGpsProjection.Latitude = Double.Parse(textLatitude.Text);
objGpsProjection.Longitude = Double.Parse(textLongitude.Text);
object o = objGpsDatum;
objGpsProjection.ToUTM( ref o );
textEasting.Text = String.Format("{0:0.00}", objGpsProjection.Easting);
textNorthing.Text = String.Format("{0:0.00}", objGpsProjection.Northing);
textZone.Text = String.Format("{0}", objGpsProjection.Zone);
textResult.Text = objGpsProjection.LastErrorDescription.ToString ();
}
}