Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

update easting and northing using distance and bearing

Posted on 2009-07-09
7
1,817 Views
Last Modified: 2012-05-07
Hi,
Could anyone suggest a formula / method for updating eastings and northings using a distance and a bearing?
0
Comment
Question by:gardnerw
  • 3
  • 2
7 Comments
 
LVL 55

Expert Comment

by:Jaime Olivares
ID: 24833449
at a first approach, I think you must always operate coordinates as latitude/longitude and then apply conversion to UTM
0
 
LVL 15

Expert Comment

by:oobayly
ID: 24840773
When you say Northing & Easting, do you mean Lat/Lon or in some kind of projection?

The following page is one I've gotten a lot of information from. To project a point a given distance & bearing from a given coordinate, you could use the equations to determine destination using Rhumb lines.
0
 
LVL 15

Expert Comment

by:oobayly
ID: 24840777
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:gardnerw
ID: 25280146
Hi sorry for such a late response to your posts,

The data is on OSGB70 projection, it would be sitting within a variety of GIS applications. Ideally i would like to be able to export it to a xls, csv or  dxf then specify a bearing and a distance to update specific points.

Many Thanks
0
 
LVL 15

Accepted Solution

by:
oobayly earned 500 total points
ID: 25280979
Unfortunately I'm not familiar with OSGB70, as I normally deal with OSGB70 & WGS84. However:

OSGB70 & ODGB36 share the same ellipsoid:
OSGB70: http://www.eye4software.com/products/coordinatecalculator/datum/175/
OSGB36: http://www.eye4software.com/products/coordinatecalculator/datum/12/

This page gives you some idea of how to do the transformation:
http://www.linz.govt.nz/geodetic/conversion-coordinates/geodetic-datum-conversion/datum-transformation-equations/index.aspx

The nice thing is that as the transformation and rotation parameters are all zero (for WGS84 & OSGB70), you only have to convert your coordinates in OSGB70 to Cartesian (using the Airy ellipsoid), and then straight back to WGS84 coordinates (using the WGS84 ellipsoid).
Actually, I'm guessing that your data is already cartesian coordinates as you mentioned Eastings & Northings, so you should only have to use the ToWGS84 method.

Then operating on the WGS84 using the equations in the 1st set of links I posted.

private static void FromOSGB70(double lat, double lon, double h,
  out double x, out double y, out double z) {
  // WGS coordinates in radians
  double phi = lat * Math.PI / 180;
  double lambda = lon * Math.PI / 180;
 
  // Airy 1830 ellipsoid parameters
  // http://www.eye4software.com/products/coordinatecalculator/datum/175/
  // Semi-major axis
  double a = 6377563.396;
  // Flattening
  double f = 1 / 299.3249646;
  // Eccentricity squared
  double e2 = (2 * f) - (f * f);
 
  double nu = a / Math.Sqrt(1 - e2 * Math.Pow(Math.Sin(phi), 2));
 
  x = (nu + h) * Math.Cos(phi) * Math.Cos(lambda);
  y = (nu + h) * Math.Cos(phi) * Math.Sin(lambda);
  z = ((nu * (1 - e2)) + h) * Math.Sin(phi);
}
 
private static void ToWGS84(double x, double y, double z,
  out double lat, out double lon, out double h) {
  // WGS84 ellipsoid parameters
  // http://www.eye4software.com/products/coordinatecalculator/datum/7/
  // Semi-major axis
  double a = 6378137;
  // Flattening
  double f = 1 / 298.257223563;
  // Eccentricity squared
  double e2 = (2 * f) - (f * f);
   
  double p = Math.Sqrt((x * x) + (y * y));
  double r = Math.Sqrt((p * p) + (z * z));
  double mu = Math.Atan2(
    z * ((1 - f) + (e2 * a / r)),
    p
    );
 
  double lambda= Math.Atan2(y, x);
  double phi = Math.Atan2(
    (z * (1 - f)) + (e2 * a * Math.Pow(Math.Sin(mu), 3)),
    (1 - f) * (p - (e2 * a * Math.Pow(Math.Cos(mu), 3)))
    );
  h = (p * Math.Cos(phi)) + (z * Math.Sin(phi)) -
    (a * Math.Sqrt(1 - (e2 * Math.Pow(Math.Sin(phi), 2))));
 
  lat = phi * 180 / Math.PI;
  lon = lambda * 180 / Math.PI;
}

Open in new window

0
 

Author Closing Comment

by:gardnerw
ID: 31601508
Cheers!
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
gps boundary reader 7 452
Google Maps - xml 9 748
GPS emulator - .NET programming - FakeGPS 2 509
proximity to a location polygon (Geozone) 1 169
I feel like more and more people want to know how to programmatically convert addresses into geospatial locations. So in this article, I will show you how you can do it with Bing Maps. I'm going to use PowerShell, which is a nice scripting language,…
Introduction This article is designed to assist GIS (Geographic Information System) and GPS (Global Positioning System) developers using ESRI ArcGIS and other spatial information management systems.   For the uninitiated the concept of projectio…
This tutorial demonstrates how to identify and create boundary or building outlines in Google Maps. In this example, I outline the boundaries of an enclosed skatepark within a community park.  Login to your Google Account, then  Google for "Google M…
This tutorial walks through the best practices in adding a local business to Google Maps including how to properly search for duplicates, marker placement, and inputing business details. Login to your Google Account, then search for "Google Mapmaker…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question