Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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
谷歌地图Javascript API v3地图标签和多边形_Javascript_Google Maps Api 3 - Fatal编程技术网

谷歌地图Javascript API v3地图标签和多边形

谷歌地图Javascript API v3地图标签和多边形,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我正在一个项目中使用GoogleMapsJavaScriptAPIv3,目前在让地图标签显示在多边形上方时遇到了问题。我知道多边形仅针对其自身进行z索引(无法使用maplabel的z索引将maplabel放置在其上方)。我想知道是否有一些黑客绕过这个问题。我还在使用api的信息窗口库,我需要标签显示在多边形上方,但在信息窗口下方。注意:Fusion Tables于2019年12月3日关闭,Google Maps Javascript api 3.37版是支持Fusion Tables的最新版本。

我正在一个项目中使用GoogleMapsJavaScriptAPIv3,目前在让地图标签显示在多边形上方时遇到了问题。我知道多边形仅针对其自身进行z索引(无法使用maplabel的z索引将maplabel放置在其上方)。我想知道是否有一些黑客绕过这个问题。我还在使用api的信息窗口库,我需要标签显示在多边形上方,但在信息窗口下方。

注意:Fusion Tables于2019年12月3日关闭,Google Maps Javascript api 3.37版是支持Fusion Tables的最新版本。

您是否正在尝试这样做:

将信息框用于显示在FusionTablesLayer多边形顶部的地图标签

标签上有白色背景:

代码段:

google.load('visualization','1'{
“包”:[“corechart”、“table”、“geomap”]
});
var映射;
var标签=[];
var层;
var tableid=1499916;
函数初始化(){
geocoder=新的google.maps.geocoder();
map=new google.maps.map(document.getElementById('map_canvas'){
中心:新google.maps.LatLng(37.23032838760389,-118.65234375),
缩放:6,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
layer=new google.maps.FusionTablesLayer(tableid);
layer.setQuery(“从“+tableid”中选择“几何图形”);
图层设置图(map);
代码地址();
google.maps.event.addListener(map,“bounds_changed”,function()){
displayZips();
});
google.maps.event.addListener(映射,“zoom_changed”,函数(){
if(map.getZoom()<11){
对于(变量i=0;i
#地图#画布{
宽度:610px;
高度:400px;
}


maplabel.js
中更改:

mapPane.appendChild(canvas);

对地图窗格进行了描述


然后在mapLabelOptions中设置xIndex,将标签置于多边形前面。

这可能是一个很晚才找到的。。但希望有人会觉得这很有用

如果您不想使用
infoBox
(geocodezip的解决方案)而不是标签,并且希望提供自定义zIndex。。编辑maplabel.js

MapLabel.prototype.onAdd=function()的末尾之前添加以下行{

if (canvas.parentNode != null) {
    canvas.parentNode.style.zIndex = style.zIndex;
}
现在,您可以在创建地图标签时传递zIndex:

var mapLabel = new MapLabel({
    text: "abc",
    position: center,
    map: map,
    fontSize: 8,
    align: 'left',
    zIndex: 15
});
这项工作:

在maplabel.js中更改:

mapPane.appendChild(canvas);

mapPane.appendChild(canvas);
overlayLayer.appendChild(canvas);