多条折线相互叠加 - 将一条"带到前面"

时间:2014-04-19 22:33:01

标签: javascript google-maps google-maps-api-3 google-polyline

有没有办法将块的多边形(及其折线)带到顶层?

我正在为城市中的街区绘制折线(以形成多边形)。每个块多边形都用白色折线标出:

 block = new google.maps.Polygon({
        paths: blockCoordinates,
        strokeColor: '#ffffff',
        strokeOpacity: 1.0,
        strokeWeight: 2,
        fillColor: '#ff0000',
        fillOpacity: shadeValue
      }); }

当我将鼠标悬停在一个区块上时,我希望轮廓变黑。我目前有这个代码:

google.maps.event.addListener(flightPath, 'mouseout', function (event) {
                this.setOptions({
                    strokeColor: '#ffffff'
                });
            });
google.maps.event.addListener(flightPath, 'mouseover', function (event) {
                this.setOptions({
                    strokeColor: '#000000'
                });
            });

然而,它并不适用于所有的块。我认为这是因为(取决于块的绘制顺序),有时其他块的折线在当前块折线的“上方”。

enter image description here

如果我将白色折线设置为不透明度为0(黑色设置为不透明度为1)。 它工作正常,但我当然不会在块之间找到漂亮的白线。

enter image description here

1 个答案:

答案 0 :(得分:1)

我遇到了几个重叠Polylines的问题。我解决这个问题的方法是使用Polyline初始化zIndex。对你而言应该看起来像:

 block = new google.maps.Polygon({
    paths: blockCoordinates,
    strokeColor: '#ffffff',
    strokeOpacity: 1.0,
    strokeWeight: 2,
    fillColor: '#ff0000',
    fillOpacity: shadeValue,
    zIndex: 1
  }); }

现在,您应该可以使用zIndexPolylines这样的事件来更改mouseover的{​​{1}}:

mouseout

初始化并非严格必要,但如果不这样做,则可能会遇到意外行为。