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
Javascript 为每个贴图具有多个图层的Fusion表设置多边形选项样式_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 为每个贴图具有多个图层的Fusion表设置多边形选项样式

Javascript 为每个贴图具有多个图层的Fusion表设置多边形选项样式,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我在地图上设置了两层。 我使用了这里给出的建议: 当我加载地图时,我希望第1层的某些多边形根据字段值填充不同的颜色,第2层的某些记录根据字段值提供不同的颜色 这就是我到目前为止所做的工作。。。 但是将样式语句放在map:map行之前不起作用 函数初始化\u 1{ var map=new google.maps.Mapdocument.getElementById'map\u canvas'{ 中心:新google.maps.LatLng51.4,-0.1, 缩放:9, mapTypeId:g

我在地图上设置了两层。 我使用了这里给出的建议:

当我加载地图时,我希望第1层的某些多边形根据字段值填充不同的颜色,第2层的某些记录根据字段值提供不同的颜色

这就是我到目前为止所做的工作。。。 但是将样式语句放在map:map行之前不起作用

函数初始化\u 1{ var map=new google.maps.Mapdocument.getElementById'map\u canvas'{ 中心:新google.maps.LatLng51.4,-0.1, 缩放:9, mapTypeId:google.maps.mapTypeId.ROADMAP }; var infoWindow=new google.maps.infoWindow; //初始化第一层 var firstLayer=new google.maps.FusionTablesLayer{ 查询:{ 选择“LAD10CD”, 自:“1vWDu0FYiPNYEg6ZjLOOtNd6RYd1E_mWr-i5obblp”, 其中:'LAD10CD'E0%\ }, //这就是我试图添加的样式类型: //样式:[{where:'LAD10CD like'E0%\,polygonOptions:{fillcolor:'000000'}] 风格:[ {其中:'LAD10CD'E09%\,'polygonOptions':{'fillColor':'00ff00'}, {其中:'LAD10CD像'E07%\,'polygonOptions':{'fillColor':'0000ff'} ], //在哪里可以找到styleId? //styleId:3, 地图:地图, suppressInfoWindows:false }; google.maps.event.addListenerfirstLayer,“单击”,函数E{ 窗口控件、信息窗口、地图; }; //初始化第二层 var secondLayer=new google.maps.FusionTablesLayer{ 查询:{ 选择“lat”, 发件人:“1Pe6lQx3KaFyP5pbhxWfERVciEuqYyBv1Dmcc_f5N”, 其中:'ClinicType Like\'%\ }, // styleId:2, 地图:地图, suppressInfoWindows:false }; google.maps.event.addListenersecondLayer,“单击”,函数E{ 窗口控件、信息窗口、地图; }; } 谷歌地图API示例:Loacal权限层
如果要使用这些样式,可以尝试以下方法:

styles: [{where:'LAD10CD like \'E09%\'', 'polygonOptions': {'fillColor': '#000000'}}],
我想,在你的代码中,有些幻影消失了。 另一方面,我无法使用相应的字段值设置填充颜色。 但在fusiontables上,您可以创建一个样式化的贴图,在其中可以将“FillColor”字段设置为多边形的填充颜色

有一个已命名为“几何地图”的样式化地图,其ID为3。如果您创建了更多的地图,您可以在URL的en处查看它们的ID。地图:id= 因此,您可以使用此ID作为“样式ID”,如下所示:

var firstLayer = new google.maps.FusionTablesLayer({
query: {
  select: 'LAD10CD',
  from: '1vWDu0FYiPNYEg6ZjLOOtNd6RYd1E_mWr-i5obblp',
  where: 'LAD10CD like \'E09%\''
},
styleId: 3,
map: map,
suppressInfoWindows: true
});

我希望这能有所帮助。

感谢MKiss提供的信息。。。 要基于FusionTables创建多层Google地图并控制图层样式,请执行以下操作:

使用OP中的代码段 选项1:每个层中最多可包含五个where子句,使用:

styles: [{where:'LAD10CD like \'E09%\'', 'polygonOptions': {'fillColor': '#000000'}}],
选项2::在可融合贴图中创建样式,并在多层贴图脚本中使用可融合贴图的样式ID。FusionTable地图的样式ID可在FusionTable | Tools | Publish“发送电子邮件或IM链接”中找到。样式ID是发布URL中y=后的数字:

styleId: 3,

请提供一个例子来说明这个问题。这是我的JSFIDLE:我在你的FIDLE中看到一个javascript错误:uncaughttypeerror:map.addLayer不是一个函数,如果我运行initialize_2。但是你的小提琴在默认情况下运行initialize_1,它不做任何样式设置。我尝试了另一种使用initialize_2的方法,这非常有用-第一种样式,语句工作得很好。但是styleId:3似乎不适用于类似的融合表。也许您应该在融合表中创建一个新的映射“选项卡”,并设置功能样式。styleId似乎不是来自融合表url querystring map:id=3,当我尝试将styleId:3与另一个在映射url中具有map:id=3的融合表一起使用时,它会被忽略,而我尝试使用styleId:2,这是可行的。在哪里可以找到styleId?styles语句中可以包含的样式:[{Where…},{Where…}}]子句的数量是否有限制?第五个where子句之后的子句似乎被忽略。。。!?我为你做了一个调查,但不幸的是我没有好消息。正如政府所说: