Перемещение пользовательской позиции наложения 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';
}

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


person tcox    schedule 26.09.2013    source источник


Ответы (1)


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

person tcox    schedule 18.10.2013