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

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

Координаты, которые я получаю из игры, находятся между 0 и 15360. На пользовательской карте угол NorthEast 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

1 ответ

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

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

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

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

Q {nb: 90, ob: 180, toString: function, ...
Другие вопросы по тегам