Подогнать координаты к Google Map V3 LatLng

Я пытаюсь сопоставить координаты x и y, которые я получаю из игры, с пользовательской картой изображения с помощью Google Maps V3.

Координаты, которые я получаю из игры, находятся между 0 и 15360. На пользовательской карте северо-восточный угол LatLng равен (95, 180), а юго-западный угол LatLng равен (-82,5, -180).

Итак, моя функция преобразования игровых координат в Google Map LatLng такова:

function getLatLngFromCoords(x, y) {
    x = parseFloat(x.replace(",", "."));
    y = parseFloat(y.replace(",", "."));
    var lng = x / (15360 / 360) - 180;
    var lat = y / (15360 / 177.5) - 95;
    return new google.maps.LatLng(lat, lng);
}

но это не соответствует позициям.

Я заставил Северо-Восток и Юго-Запад LatLng сделать маркеры и настроить их, чтобы видеть, когда они были в углу моей карты изображения.

Везде, когда я получаю границы карты с map.getBounds()

Я вижу это:

    map.getBounds().getNorthEast(); // nb: 89.76247963221984, ob: 180
    map.getBounds().getSouthWest(); // nb: -87.43214656352167, ob: -180

person Sergio    schedule 22.12.2013    source источник


Ответы (1)


Вы используете неправильное значение широты для северо-восточного угла. Ваши значения: LatLng (95, 180). Максимальное значение широты — 90, поэтому, скорее всего, это отсечка (90, 180).

Например, используя

new google.maps.LatLng(95, 180);

Я получил объект:

Q {nb: 90, ob: 180, toString: function, ...
person Anto Jurković    schedule 22.12.2013