我正在尝试使用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事件。我宁愿将所有多边形放在一个单独的文件中......
提前致谢!
答案 0 :(得分:2)
我意识到这是一个非常古老的问题,但认为它可能对某人有所帮助。并非Google地图支持所有KML代码。 (Google地球支持大多数(如果不是全部)。例如:
<StyleMap></StyleMap>
Google地图支持不,但在地球上有效。所以这就是为什么它不起作用。
我目前正在寻找在Google地图中悬停KML多边形状态的解决方案。 (没有额外的javascript或凌乱的重复变通方法。)但它不是最优先考虑的事情,所以如果我很快找不到解决方案,那么我现在就没有这个功能。
答案 1 :(得分:0)
此问题已在Google Maps API问题跟踪器中报告为#131 here。 该问题在没有“WontFix”之外的评论/原因的情况下被关闭。
KmlLayers呈现为tile,因此我想这会使鼠标移动事件变得更加困难。