Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 将KMZ文件添加到我的谷歌地图时,是否有方法将图像覆盖层置于多边形上方?_Google Maps_Google Maps Api 3_Google Earth_Kmz - Fatal编程技术网

Google maps 将KMZ文件添加到我的谷歌地图时,是否有方法将图像覆盖层置于多边形上方?

Google maps 将KMZ文件添加到我的谷歌地图时,是否有方法将图像覆盖层置于多边形上方?,google-maps,google-maps-api-3,google-earth,kmz,Google Maps,Google Maps Api 3,Google Earth,Kmz,我在我的网站上有一个谷歌地图页面,我想在那里加载一系列KMZ文件,显示一块块土地。我在Google Earth中生成KMZ,它由一个图像覆盖和一系列多边形组成。我首先加载图像叠加,这是一个由黑线和透明背景组成的PNG,它显示了地块的边界线。然后,我在这张图片上画多边形,将相关的绘图分组。在从Google Earth导出KMZ之前,我确保图像显示在前景中,多边形上方。但是,在导出KMZ并将其加载到我的网页上的Google地图后,图像覆盖在后面,多边形分层在顶部,模糊了图像中显示的边界线细节 我在G

我在我的网站上有一个谷歌地图页面,我想在那里加载一系列KMZ文件,显示一块块土地。我在Google Earth中生成KMZ,它由一个图像覆盖和一系列多边形组成。我首先加载图像叠加,这是一个由黑线和透明背景组成的PNG,它显示了地块的边界线。然后,我在这张图片上画多边形,将相关的绘图分组。在从Google Earth导出KMZ之前,我确保图像显示在前景中,多边形上方。但是,在导出KMZ并将其加载到我的网页上的Google地图后,图像覆盖在后面,多边形分层在顶部,模糊了图像中显示的边界线细节

我在Google Earth中尝试了以下选项以将图像置于顶部,但没有一个选项能够在我的地图中实现正确的分层:

  • 将高度设置为“绝对”并升高到>50m(在Google Earth的多边形上方显示)
  • 将“绘制顺序”增加到高于多边形的值
  • 在文档树中,在多边形列表中对图像重新排序(定位在多边形上方,然后定位在多边形下方)
  • 在文档树中,将图像放置在树中自己的文件夹中(位于多边形文件夹的上方和下方)
但是,每次尝试都会导致KMZ在我的网页中显示不正确-图像覆盖显示在后面:

我还尝试将多边形放在一个KMZ中,将图像覆盖放在另一个KMZ中,将每个多边形分别加载到我的地图中,对于带有图像的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使用上述方法添加到我的地图中):


在谷歌地图KML文档中,我似乎看不到任何关于图像覆盖或KML中如何进行分层的具体提及。有没有办法配置KML,以便在Google Maps中显示时,图像覆盖层位于多边形上方?

因为在Google Maps中似乎没有办法以本机方式渲染多边形上方的覆盖层,我采用的解决方法是减少多边形的不透明度,以便覆盖层在多边形下方可见

这还提供了额外的好处,即基础地图图像在某种程度上是可见的(因为我的覆盖有一个透明的背景):


我用这种风格实现了这一目标:

#map > div > div > div > div > div:nth-child(2) img[draggable="false"] {
  opacity: 0.4;
}

可能重复的问题:您是否有在尝试覆盖时使用的图像覆盖或KML/KMZ的样本?我猜您的意思是当我尝试分别覆盖两层时?这些是在和。可能对你没有用处,但我可以复制这个问题。不确定为什么我们似乎无法控制排序,即使是在使用第三方解析器时,但这可能与地面覆盖层的渲染细节有关。我认为您可以使用第三方KML解析器的定制版本。在最终的应用程序中,这是否会表现得足够好将取决于最终KML的复杂程度。