This is a static archive of our old OpenStreetMap Help Site. Please post any new questions and answers at community.osm.org.

Relation between GPS and cartesian coordinates

0

Hi, I'm trying to create a layer with nodes representing a route. This occurs indoor so there's no GPS info along the way. I have a starting point with its GPS coordinates in OSM. That point corresponds to a cartesian point, say, (0,0). At a few points I calculate the variation of the cartesian coordinates having then several (x1,y1), (x2,y2), etc. points in meters. I'd like to calculate the GPS coordinates of that points knowing that the initial point (0,0) is the initial GPS coordinate.

I've read about haversine formula about how to calculate distances between two GPS coordinates but I don't know how to do the inverse action.

Can anyone shed some light?

asked 25 Apr '15, 14:06

Viper_scull's gravatar image

Viper_scull
11112
accept rate: 0%

edited 26 Apr '15, 18:42

aseerel4c26's gravatar image

aseerel4c26 ♦
32.6k18248554


One Answer:

1

Well the basic problem is that the world isn't flat.

You need to project your coodinates on a spheroid on to a plane. There are multiple ways to do this as the wikipedia article points out, but I suspect what you would want to use is the mercator projection, likely scaled to whatever you are using as a local grid.

To get the WGS84 (GPS) coordinates back from your cartesian coordinates you have to naturally do the inverse.

answered 26 Apr '15, 10:02

SimonPoole's gravatar image

SimonPoole ♦
44.7k13326701
accept rate: 18%

edited 26 Apr '15, 16:25

For indoor mapping of this kind I would find a local co-ordinate system suitable for calculations in Cartesian geometry (such as OSGB (EPSG:27700 for UK) or CH-1903 or CH-1903+(for CH)). This is effectively what @SimonPoole is suggesting.

(26 Apr '15, 15:43) SK53 ♦

@SK53 I suspect this maybe simply an arbitrary grid laid over the floor plan (or screen coordinates for what it is worth).

(26 Apr '15, 15:58) SimonPoole ♦

Source code available on GitHub .