谷歌地图矩形/多边形及其标题

3
如何为google.maps.Rectangle和google.maps.Polygon添加标题?在RectangleOptions中没有title属性。我尝试了一下,但不起作用(对于google.maps.Marker是可行的,所以我想它也应该适用于矩形和多边形)。
如果没有通过google maps找到干净的解决方案,那么是否可以使用jQuery获取矩形的DOM元素并添加title属性呢?因此我们可能将问题简化为“如何获取google maps矩形/多边形的DOM元素?”

可能是在Google地图上的多边形上方显示工具提示的重复问题。 - SliverNinja - MSFT
2个回答

3
您可以使用InfoBox在此下载)来模仿“标题”工具提示。虽然有点复杂,但通过设置正确的选项,您可以使其看起来更像是浏览器工具提示而不是我展示的样子。 http://jsfiddle.net/vF7u2/

谢谢Heitor...不过难道没有更简单的解决方案吗?这需要使用库和大量代码... - Tomas
能否只使用jQuery获取矩形的DOM元素并添加title属性呢? - Tomas
那是个好主意,只是我不知道怎么做 :( - Heitor Chang

1
我发现了一个在线资源,帮助我在多边形上实现工具提示, 来自http://philmap.000space.com/gmap-api/poly-hov.html
var tooltip=function(){
var id = 'tt';
var top = 3;
var left = 3;
var maxw = 200;
var speed = 10;
var timer = 20;
var endalpha = 95;
var alpha = 0;
var tt,t,c,b,h;
var ie = document.all ? true : false;
return{
    show:function(v,w){         
        if(tt == null){             
            tt = document.createElement('div');
            tt.setAttribute('id',id);
            t = document.createElement('div');
            t.setAttribute('id',id + 'top');
            c = document.createElement('div');
            c.setAttribute('id',id + 'cont');
            b = document.createElement('div');
            b.setAttribute('id',id + 'bot');
            tt.appendChild(t);
            tt.appendChild(c);
            tt.appendChild(b);
            document.body.appendChild(tt);              
            tt.style.opacity = 0;
            tt.style.filter = 'alpha(opacity=0)';
            document.onmousemove = this.pos;                
        }
        tt.style.visibility = 'visible';
        tt.style.display = 'block';
        c.innerHTML = v;
        tt.style.width = w ? w + 'px' : 'auto';
        if(!w && ie){
            t.style.display = 'none';
            b.style.display = 'none';
            tt.style.width = tt.offsetWidth;
            t.style.display = 'block';
            b.style.display = 'block';
        }
        if(tt.offsetWidth > maxw){tt.style.width = maxw + 'px'}
        h = parseInt(tt.offsetHeight) + top;
        clearInterval(tt.timer);
        tt.timer = setInterval(function(){tooltip.fade(1)},timer);
    },
    pos:function(e){
        var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
        var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
        tt.style.top = (u - h) + 'px';
        tt.style.left = (l + left) + 'px';
    },
    fade:function(d){
        var a = alpha;
        if((a != endalpha && d == 1) || (a != 0 && d == -1)){
            var i = speed;
            if(endalpha - a < speed && d == 1){
                i = endalpha - a;
            }else if(alpha < speed && d == -1){
                i = a;
            }
            alpha = a + (i * d);
            tt.style.opacity = alpha * .01;
            tt.style.filter = 'alpha(opacity=' + alpha + ')';
        }else{
            clearInterval(tt.timer);
            if(d == -1){tt.style.display = 'none'}
        }
    },
    hide:function(){
        clearInterval(tt.timer);
        tt.timer = setInterval(function(){tooltip.fade(-1)},timer);
    }
};
}();

此外,请参考这个关于同一主题的SO讨论: 在Google地图上多边形上的工具提示

1
抱歉,但这是一段很丑陋的代码...我只想要简单标准的标题属性。为什么不直接获取矩形的DOM元素并添加呢?这样我们可以将问题简化为"如何获取谷歌地图矩形/多边形的DOM元素?" - Tomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接