开发者

Moving GPS position with a certain distance (in meters) in a known direction

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).


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜