Thanks for that link - I thought I'd run a good enough search of this forum but that thread was just what I needed 
I've now solved my problem:
<asp:HyperLinkField DataNavigateUrlFields="Longitude,Latitude" DataNavigateUrlFormatString="javascript:ShowMapLocation({0},{1})"
DataTextField="Tracking" DataTextFormatString="{0}" HeaderText="Tracking"
ShowHeader="False" Target="_blank">
<ItemStyle HorizontalAlign="Center" />
</asp:HyperLinkField>
Now becomes:
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Tracking" SortExpression="Tracking">
<ItemTemplate>
<asp:HyperLink ID="idTracking" runat="server" NavigateUrl='<%# "ShowMapLocation(" + Eval("Longitude", "{0}") + "," + Eval("Latitude","{0}") + ")" %>' Text='<%# Eval("Tracking") %>'/>
</ItemTemplate>
</asp:TemplateField>
With a supporting piece of CS:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink hl = (HyperLink)e.Row.FindControl("idTracking");
hl.NavigateUrl = "javascript:" + hl.NavigateUrl;
}
}I'm sure there is a better way of solving this, but I'm only doing web development because I have to - it's not my normal area 
So far as I've been able to test it appears work just fine!
Best of luck solving your problem!
Jack