2

我正在开发一个项目,在该项目中,我利用瓷砖覆盖(视觉)来显示空间、建筑物名称、可访问性和停车位以及 KML 多边形(功能)的渲染,以允许用户单击各种建筑物或兴趣点以提供更多信息。我当前的问题在于这些不同元素的组织。

目前,KML 多边形出现在所有图块覆盖层之上,包括建筑物名称和停车场,我希望它们位于 KML 多边形之上,否则它们会被多边形部分遮挡。简而言之,这是当前的分层:

  • KML 多边形
  • 建筑物名称(透明)
  • 可访问性(透明)
  • 停车场(透明)
  • 空间渲染(不透明)
  • 谷歌地图

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

  • 建筑物名称(透明)
  • 可访问性(透明)
  • 停车场(透明)
  • KML 多边形
  • 空间渲染(不透明)
  • 谷歌地图

无论如何要重新排列 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 多边形必须是可见的,因此我已经求助于寻找一种重新排序图层的方法。

4

2 回答 2

1

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

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

您可能需要调整在哪个窗格中绘制叠加层。这是适用的源代码行:

this.getPanes().mapPane.appendChild(this.settings.div_);
于 2012-05-17T17:30:50.437 回答
1

您无法轻松更改图层顺序,但您可以在 KML 中使用透明多边形来获得相同的效果。

于 2012-05-17T16:26:45.723 回答