Hello!

When you transfer coordinates received in OSM, a slight offset occurs on Yandex.Maps. How to get rid of this offset so that the marks exactly hit certain points.

  • Language specify in the label / tag - Barmaley
  • Try to write more detailed questions. Explain what technology you are using, what you have already implemented, got a mistake, etc. - Nicolas Chabanovsky

2 answers 2

The shift is due to the fact that OSM and Yandex use slightly different geographic projections. Simply put, they come from several different ideas about what particular parameters the Earth's ellipsoid has. Correspondingly, the angular geographic coordinates are projected onto the virtual plane of their maps slightly differently.

Theoretically, there are formulas for transferring coordinates from one projection to another. However, in practice, this will not help, since most likely it will not be possible to find out the exact parameters of the Yandex projection. Personally, I have not tried. But my colleagues tried to solve this problem about two years ago and could not.

Part of the problem can be solved on a local scale. For example, for a particular city. To do this, select the parameters of the unknown projection by matching in pairs a large set of coordinates from sources with known and unknown projections. But, firstly, it is quite difficult. We'll have to write a special program just for this. And, secondly, as a result, you still get a local approximation of an unknown projection, for which you will have to derive the transformation formulas yourself. Ready-made formulas exist only for standard projections.

    In this OpenLayers plugin http://xbb.uz/openlayers/i-Yandex.Maps , if I'm not mistaken, the translation of the “Yandex” projections into standard ones is implemented. Take a look.