使用KMZ文件Google Maps v3中的多边形突出显示/鼠标悬停

时间:2011-03-22 19:45:30

标签: coding-style google-maps-api-3 hover polygon kml

我正在尝试使用Google Maps v3让高亮/悬停/鼠标悬停样式适用于KMZ地标。当我使用Google地球打开KMZ文件时,悬停时的相应区域将根据需要更改为highlightPlacemark样式。但是当我将这个KMZ加载到Google Map对象上时,样式永远不会改变。

以下是样式的样子:

<Style id="highlightPlacemark">
    <LineStyle>
        <color>ff000000</color>
    </LineStyle>
    <PolyStyle>
        <color>a60000ff</color>
    </PolyStyle>
</Style>
<StyleMap id="exampleStyleMap">
    <Pair>
        <key>normal</key>
        <styleUrl>#normalPlacemark</styleUrl>
    </Pair>
    <Pair>
        <key>highlight</key>
        <styleUrl>#highlightPlacemark</styleUrl>
    </Pair>
</StyleMap>
<Style id="normalPlacemark">
    <LineStyle>
        <color>ff000000</color>
    </LineStyle>
    <PolyStyle>
        <color>a6ffffff</color>
    </PolyStyle>
</Style>

以下是地标的样子:

<Placemark id="1">
    <name>Test</name>
    <Snippet maxLines="0"></Snippet>
    <styleUrl>#exampleStyleMap</styleUrl>
    <Polygon>
        <extrude>1</extrude>
        <tessellate>1</tessellate>
        <outerBoundaryIs>
            <LinearRing>
                <coordinates>
                    ...lots of coordinates here...
                </coordinates>
            </LinearRing>
        </outerBoundaryIs>
    </Polygon>
</Placemark>

此功能是否仅适用于Google地球,或者是否有解决方法使其在Google Maps v3中有效? 我能想到的唯一方法是创建单独的Polygon对象,并单独为它们提供坐标。这允许您使用Polygon类的mouseover事件。我宁愿将所有多边形放在一个单独的文件中......

提前致谢!

2 个答案:

答案 0 :(得分:2)

我意识到这是一个非常古老的问题,但认为它可能对某人有所帮助。并非Google地图支持所有KML代码。 (Google地球支持大多数(如果不是全部)。例如:

<StyleMap></StyleMap>
Google地图支持,但在地球上有效。所以这就是为什么它不起作用。

我目前正在寻找在Google地图中悬停KML多边形状态的解决方案。 (没有额外的javascript或凌乱的重复变通方法。)但它不是最优先考虑的事情,所以如果我很快找不到解决方案,那么我现在就没有这个功能。

答案 1 :(得分:0)

此问题已在Google Maps API问题跟踪器中报告为#131 here。 该问题在没有“WontFix”之外的评论/原因的情况下被关闭。

KmlLayers呈现为tile,因此我想这会使鼠标移动事件变得更加困难。