我需要标记和地图边界之间的当前距离来决定:在标记的左侧、右侧、上方或下方绘制提示框。
我用这些代码行设置了tipbox的位置:
Label.prototype.draw = function() {
var projection = this.getProjection();
var position = projection.fromLatLngToDivPixel(this.get('position'));
// position of tipbox, depends on margin to map boaunds
var div = this.div_;
var mapWidth = parseInt($('#mapBox').css('width'));
var mapHeight = parseInt($('#mapBox').css('height'));
div.style.left = (position.x-(parseInt(div.style.width)/2)) + 'px';
div.style.top = position.y + 'px';
div.style.display = 'inline';
$('.tipBox-inner').html(''+position.x);
};
但如果我拖动页面, position.x 或 position.y 返回相同数量的像素。正如您在图像上看到的,x 位置为 300 像素(!)。如果标记位于页面底部,我会在标记顶部绘制提示框,依此类推。