2013-09-26 2 views
3

Я сделал некоторые пользовательские оверлеи для проекта Google Maps, который я делаю. Проблема, с которой я столкнулась, - это когда я размещаю оверлей, он позиционирует его на верхнем левом углу наложения, поэтому, когда я увеличиваю и уменьшаю масштаб изображения, кажется, что наложение постепенно перемещается вправо и вниз. Мне это нужно, чтобы положение от центра, так что я пробовал:Перемещение позиции наложения на Google Maps

var point = this.getProjection().fromLatLngToDivPixel(this.latlng_); 
if (point) { 
    div.style.left = point.x - $(this.content).outerWidth(true)/2 + 'px'; 
    div.style.top = point.y - $(this.content).outerHeight(true)/2 + 'px'; 
} 

где ДИВ является наложение, point.x и point.y сделать верхний левый угол наложения. Я думал, что если бы я вычитал ширину/2 и высоту/2 наложения, он бы центрировал ее. Это, кажется, отлично работает с шириной для x, но для y положение все еще постепенно уменьшается, когда я уменьшаю масштаб на карте.

ответ

1

Я действительно смог это выяснить некоторое время назад. Оказывается, в то время как положение x должно быть разделено на 2, позиция y - нет. Я только начинал с неправильного предположения, что, поскольку point.x позиционировался на основе левой части div, эта точка была позиционирована исходя из верхней части div. Похоже, что point.y был серединой div, чтобы начать с так, что деление на два было фактически тем, что заставляло его дрейфовать вверх и вниз по мере увеличения.

Смежные вопросы