diverscuba23 указал, что вы должны выбрать эллипсоид ... openstreetmap использует WGS84, как и большинство современных карт. Тем не менее, имейте в виду, что многие карты в Австралии используют более старый AGD66, который может отличаться на 100-200 метров или около того.

я есть значение широты / долготы маленькой области в Мельбурне; -37.803134,145.132377, а также плоское изображение того, что я экспортировал из openstreet map (Osmarender Image). Ширина изображения: 1018 и высота: 916

Я хотел бы иметь возможность конвертировать, используя C ++, широту / долготу в координаты X, Y, где точка будет отражать местоположение.

Я использовал различные формулы, которые я нашел в сети, как показано ниже, но ничего не помогает.

var y = ((-1 * lat) + 90) * (MAP_HEIGHT / 180);
var x = (lon + 180) * (MAP_WIDTH / 360);

Было бы очень полезно, если бы кто-нибудь дал мне четкое объяснение того, как это сделать. Любой код будет высоко ценится.

Ответы на вопрос(4)

Ваш ответ на вопрос