gpt4 book ai didi

google-maps - 将 KMZ 文件添加到我的 Google map 时,有没有办法将图像叠加在多边形之上?

转载 作者:行者123 更新时间:2023-12-04 18:05:00 25 4
gpt4 key购买 nike

我的网站上有一个谷歌地图页面,我想在其中加载一系列显示土地 block 的 KMZ 文件。我在 Google 地球中生成 KMZ,它们由图像叠加层和一系列多边形组成。我首先加载 Image Overlay,它是由黑色线条和透明背景组成的 PNG - 这显示了地 block 的边界线。然后我在该图像上绘制多边形以对相关图进行分组。在从 Google 地球导出 KMZ 之前,我确保图像显示在前景中,在多边形上方。然而,在将 KMZ 导出并加载到我网页上的 Google map 后,图像叠加层加载在后面,多边形分层在上面,模糊了图像中显示的边界线细节。

我已尝试在 Google 地球中使用以下选项将图像置于顶部,但均无法在我的 map 中生成正确的图层:

  • 将海拔高度设置为“绝对”并升高到 >50m(在 Google 地球中显示在多边形上方)。
  • 将绘制顺序增加到高于多边形的值。
  • 在文档树中,对多边形列表中的图像重新排序(定位在多边形上方和下方)。
  • 在文档树中,将图像放在树中它自己的文件夹中(位于多边形文件夹的上方和下方)。

但是,这些尝试中的每一次仍然会导致 KMZ 在我的网页中显示不正确 - 图像叠加层显示在后面:

Google Earth vs Google Maps rendering

我还尝试将多边形放入一个 KMZ 中,将图像叠加层放入另一个 KMZ 中,将每个单独加载到我的 map 中,并为带有图像的 KMZ 设置更高的 zIndex,并且图像叠加层仍位于多边形下方。

就我添加 KMZ 文件的客户端代码而言(以防我在那里做错了什么),我获取了每个 KMZ 的 URL 并将其传递到以下方法中:

function addKMZFile(myMap, kmzUrl) {
var kmzLayer = new google.maps.KmlLayer({
url: kmzUrl,
preserveViewport: true,
map: myMap,
clickable: true
});
}

我已将示例 KMZ 上传到我的文件服务器,可用于测试目的(KMZ 使用上述方法添加到我的 map ): http://bassmanjase.altervista.org/SO_Test.kmz

我似乎无法在 Google map KML 文档中看到任何关于图像叠加或如何在 KML 中执行分层的具体提及。有没有一种方法可以配置 KML,使图像叠加层在 Google map 中显示时位于多边形之上?

最佳答案

由于似乎没有办法在 Google map 中以原生方式在多边形上方呈现叠加层,因此我采用的解决方法是降低多边形的不透明度,以便叠加层在它们下方可见。

这还带来了额外的好处,即底层 map 图像在某种程度上是可见的(因为我的叠加层具有透明背景):

Semi-opaque polygons with image overlay below

关于google-maps - 将 KMZ 文件添加到我的 Google map 时,有没有办法将图像叠加在多边形之上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28573025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com