如何在Google地图中更改KML和平铺叠加层?

时间:2012-05-17 15:16:27

标签: google-maps google-maps-api-3 overlay kml layer

我正在开发一个项目,我正在使用图块叠加(可视)来显示空间,建筑物名称,辅助功能和停车位以及KML多边形的渲染 (功能)允许用户点击各种建筑物或兴趣点以显示更多信息。我目前的问题在于组织这些不同的元素。

目前,KML多边形出现在所有瓷砖覆盖层之上,包括建筑物名称和停车位,我更喜欢它们位于KML多边形之上,因为它们会被多边形部分遮挡。简而言之,这是当前的分层:

  • KML多边形
  • 构建名称​​(透明)
  • 辅助功能(透明)
  • 停车(透明)
  • 空间渲染(不透明)
  • Google地图

理想情况下,我希望KML多边形出现在这些图块叠加层中,即在空间渲染的正上方。因此,我希望获得这种分层:

  • 构建名称​​(透明)
  • 辅助功能(透明)
  • 停车(透明)
  • KML多边形
  • 空间渲染(不透明)
  • Google地图

是否有重新排列KML瓦片覆盖层以实现此目的?

平铺叠加层:

map.overlayMapTypes.insertAt(0, renderMapType);
map.overlayMapTypes.insertAt(1, parkingMapType);
map.overlayMapTypes.insertAt(2, accessMapType);
map.overlayMapTypes.insertAt(3, nameMapType);

修改

请允许我更清楚地解释一下地图。

当Google地图位于“地图”中时,会显示渲染,并且大多数KML多边形都是不可见的,渲染上未显示的那些多边形仍然可见,以便用户仍然知道它们的存在。当Google地图位于“卫星”时,不会显示渲染,并且所有KML多边形都是可见的,并将其各自的元素叠加在卫星图像上,使用户更容易看到。

在任何一种情况下,都可以使用辅助功能,停放和名称叠加,因为总是至少有一些必须可见的KML多边形,我已经采取了一种方法来重新排序图层。

2 个答案:

答案 0 :(得分:1)

您不能轻易更改图层排序,但可以在KML中使用透明多边形来获得相同的效果。

答案 1 :(得分:1)

要实际更改图层排序,您需要使用自定义图块叠加层并将其放置在适当的窗格中。这是我编写的可以免费使用的实现。它现在创建的大部分功能都存在于地图API中。

http://search.missouristate.edu/map/mobile/examples/tileoverlay.htm

您可能需要调整在哪个窗格中绘制叠加层。以下是适用的来源:

this.getPanes().mapPane.appendChild(this.settings.div_);