传单中的javascript地图如何刷新

我使用传单API在javascript中有一个基本的geoJson程序。

       
var area = L.map('map1', {center: [27.8800,78.0800], zoom: 4 }); L.tileLayer('http://a.tiles.mapbox.com/v3/raj333.map-gugr5h08/{z}/{x}/{y}.png').addTo(area); var indiaLayer= L.geoJson(india, {style: {weight: 2, opacity: 1, color: 'white', dashArray: '3', fillOpacity: 0.1}}); area.addLayer(indiaLayer); function clicked(){ this.options.style.fillOpacity = 0.8; //how to refresh layer in the given map } indiaLayer.on('click', clicked);

问题是我将如何自动刷新地图上的图层内容。

这里的例子

  function clicked(){ indiaLayer.style.fillOpacity = 0.8; //how to refresh layer in the given map } indiaLayer.on('click', clicked); 

当用户点击indiaLayer时,fillOpacity变量会改变,但不会反映在地图上,因为我没有刷新地图。 我不知道怎么做。

请帮忙

P / s:这些是indiaLayer对象上可用的函数(即,在clicked函数内部的这个对象……用于此目的的那个或者没有)

您可以在Leaflef文档中查看GEOJson可用的方法列表这是v.0.7.7的链接,这是本示例中最接近的可用链接。

上次我用过

 map._onResize(); 

这有助于我刷新地图。 也许有点黑客,但是,它有效。

在你的代码中将是area._onResize()

PS:也许你应该尝试改变设置新的不透明度值的方法 – 尝试改变

 function clicked(){ this.options.style.fillOpacity = 0.8; } 

那个

 function clicked(){ this.setStyle({fillOpacity: 0.2}); } 
 map.invalidateSize(); 

map._onResize() – 它是一个hack,并且无法保证在将来的版本中不会删除它。

area.fitBounds(area.getBounds());