Подогнать координаты к 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, ...