7

I have some GPS sample data taken from a device. What I need to do is to "move" the data to the "left" by, let's say, 1 to 5 meters. I know how to do the moving part, the only problem is that the moving is not as accurate as I want it to be.

What I currently do:

  • I take the GPS coordinates (latitude, longitude pairs)
  • I convert them using plate carrée transformation.
  • I scale the resulting coordinates to the longitudinal distance (distance on x) and the latitudinal distance (distance on y) - imagine the entire GPS sample data is inside a rectangle being bound by the maximum and minimum latitude/longitude. I compute these distances using the formula for the Great Circle Distance between the extreme values for longitude and latitude.
  • I move the points x meters in the wanted direction
  • I convert back to GPS coordinates

I don't really have the accuracy I want. For example moving to the left by 3 meters means less than 3 meters (around 1.8m - maybe 2).

What are the known solutions for doing such things? I need a solution that deviates at most by 0.2-0.5 meters from the real point (not 1.2 like in the current case).

LATER: Is this kind of approach good? By this kind I mean to transform the GPS coordinates into plane coordinates and back to GPS. Is there other way?

LATER2: The approach of converting to a conformal map is probably the one that will be used. In case of a small rectangle, and since there are not roads at the poles probably Mercator will be used. Opinions?

Thanks,

Iulian

PS: I'm working on small areas - so imagine the bounding rectangle I'm talking about to have the length of each side no more than 5 kilometers. (So a 5x5km rectangle is maximum).

INS
  • 10,594
  • 7
  • 58
  • 89
  • Could it be related to this question: http://stackoverflow.com/questions/3588653/convert-gps-coordinates-to-coordinate-plane ? – INS Apr 09 '11 at 15:33

1 Answers1

1

There are two issues with your solution:

  • plate carrée transformation is not conformal (i.e. angles are not preserved)
  • you can not measure distances along lat or lon that way since that are not great circles (approximately you are off by a factor cos(lat) for your x).

Within small rectangles you may assume that lon/lat can be linearly mapped to x/y pairs but you have to keep in mind that a "square" in lon/lat maps to a rectangle with aspect ratio of approx cos(lat)/1.

Howard
  • 38,639
  • 9
  • 64
  • 83
  • You mean I should use the general equirectangular projection? http://en.wikipedia.org/wiki/Equirectangular_projection – INS Apr 09 '11 at 15:29
  • +1. I dug after reading this post and I've discovered some nice things about scaling. More information also on this wikipedia link: http://en.wikipedia.org/wiki/Scale_(map) – INS Apr 10 '11 at 10:23
  • I select this as the best answer since it gave me some ideas about how to proceed. The solution chosen was mentioned also in the edited question: 1. Transform with Mercator, 2. Do the coordinate shift, 3. Do the inverse Mercator. – INS Apr 11 '11 at 11:47