Javascript Google Maps API-从geoJSON获取多边形的不透明度

Javascript Google Maps API-从geoJSON获取多边形的不透明度,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我试图用很多多边形(11000)制作一张地图,我希望每个多边形都有相同的颜色,但不透明度不同。不透明度/多边形的存储方式如下: {'geometry': {'coordinates': [[[10.927456267537572, 45.68179119797432], [10.940290010697588, 45.68157387892596], [10.939979018768243, 45.67257819153854], [10.9271473295

我试图用很多多边形(11000)制作一张地图,我希望每个多边形都有相同的颜色,但不透明度不同。不透明度/多边形的存储方式如下:

{'geometry': {'coordinates': [[[10.927456267537572, 45.68179119797432],
      [10.940290010697588, 45.68157387892596],
      [10.939979018768243, 45.67257819153854],
      [10.927147329501077, 45.672795442796335],
      [10.927456267537572, 45.68179119797432]]],
    'type': 'Polygon'},
   'id': 1,
   'properties': {'cellId': 39},
   'style': {'opacity': 0.38888888888888884},
   'type': 'Feature'}
我想让id为1的多边形的不透明度存储在
'style':{'opacity':0.38888888884},
行中,而id为2的多边形的不透明度不同,等等。默认情况下,会显示多边形,但不透明度相同。我目前正在尝试:

  var map;
  function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
      zoom: 7,
      center: {lat: 46.0840601, lng: 11.1428063}
    });

    map.data.loadGeoJson(
        'trentino-grid.geojson');
    }

    map.data.setStyle(function(feature) { //error here
        var value = feature.getProperty('opacity');
        var opacity = value;
        return {
          fillOpacity: opacity,
          strokeWeight: opacity
        };
    });

但这不起作用。我得到一个带有注释的行错误:
无法读取未定义的属性“data”
。我如何才能消除错误,并根据geoJSON中的
opacity
使所有这些多边形具有自己的不透明度?谢谢大家!

不透明度在错误的位置,它不在样式对象中,它应该在属性对象中:

{
  'geometry': {
    'coordinates': [
      [
        [10.927456267537572, 45.68179119797432],
        [10.940290010697588, 45.68157387892596],
        [10.939979018768243, 45.67257819153854],
        [10.927147329501077, 45.672795442796335],
        [10.927456267537572, 45.68179119797432]
      ]
    ],
    'type': 'Polygon'
  },
  'id': 1,
  'properties': {
  'cellId': 39,
  'opacity': 0.1
  },
  'type': 'Feature'
};

代码片段:

var地理编码器;
var映射;
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
缩放:12,
中心:{
拉脱维亚:45.681,
液化天然气:10.927
}
});
map.data.addGeoJson(geoJson);
map.data.setStyle(函数(特征){//此处出错
var值=feature.getProperty('opacity');
var不透明度=值;
返回{
fillOpacity:opacity,
fillColor:#00FF00“,
strokeColor:“#00FF00”,
冲程重量:1,
笔划不透明度:不透明度
};
});
google.maps.event.addDomListener(document.getElementById('btn'),“单击”,函数(evt){
geoJson.properties.opacity=parseFloat(document.getElementById('opacity').value);
map.data.addGeoJson(geoJson);
});
}
google.maps.event.addDomListener(窗口“加载”,initMap);
var geoJson={
“几何学”:{
“坐标”:[
[
[10.927456267537572, 45.68179119797432],
[10.940290010697588, 45.68157387892596],
[10.939979018768243, 45.67257819153854],
[10.927147329501077, 45.672795442796335],
[10.927456267537572, 45.68179119797432]
]
],
“类型”:“多边形”
},
“id”:1,
“属性”:{
“cellId”:39岁,
“不透明度”:0.1
},
“类型”:“功能”
};
html,
身体,
#地图{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}


对我很有用。仅供参考,strokeWeight是“以像素为单位的笔划宽度”,我建议使用整数。我真的不起作用。。。尝试更改不透明度,它保持不变。另外,如果我添加更多多边形,它们的不透明度也会保持不变。如果不知道不透明度在错误的位置,那么它就不在
属性
对象中。