I have downloaded the OSM from OpenstreeMap that came with all nodes from my city map and their respective coordinates. Now I am trying to plot a node (latitude and longitude) on Google Map, but all coordinates goes in different places from it is displayed on OpenStreetMap.
To illustrate I got the node -12.92122,-38.34991 (lat,long) on google maps and openStreetMap as you can see on these screenshots:
Is there a way to adjust this difference? So the point would be displayed at the same place in booth maps?
You used different zoom levels in the maps.
And also the precision of the maps may differ. Sometimes, there is an offset in aerial photographs like Bing or Google Earth; it can be corrected with GPS traces.
Best, you take your GPS device and walk to that point, and find out which of the versions is correct. But do not forget that also GPS devices are not absolutely correct!
Both maps are not a hundred percent correct, hence you will have to expect such differences. With OpenStreetMap at least you can improve the map as soon as you encounter an inaccuracy. You should do this only if your coordinates are reliable, of course.
A work-around would be to store three coordinate pairs for each point: a real pair, a Google Maps pair and a OpenStreetMap pair. However this is not easy to handle…
Each measurement is approximate only, i.e. has systematic and stochastic deviations from the real value. See e.g. wikipedia. When a map is drawn based on that measured data additional systematic and stochastic deviations are introduced. Thus it’s very unlikely that two maps match exactly each other or the real world.
You can see the deviations e.g. in Google earth or Google satellite with labels on, i.e. roads are drawn over the images. I saw already deviations of more than 100 meter.