我使用传单API在
javascript中有一个基本的geoJson程序.
<html> <head> <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.css" /> <script src="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.js"></script> <script src="india.js" type="text/javascript"></script> </head> <body> <div id = "map1" style="width: 1100px; height: 400px"> </div> <script> 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); </script> </body> </html>
这里的例子
function clicked(){ indiaLayer.style.fillOpacity = 0.8; //how to refresh layer in the given map } indiaLayer.on('click',clicked);
当用户单击indiaLayer时,fillOpacity变量更改,但不会反映在地图上,这是被理解的,因为我不刷新地图.我不知道该怎么做
请帮忙
P / s:这些是indiaLayer对象上可用的功能(即这个对象内部的单击函数…哪一个用于此目的或不存在)
_propagateEvent
功能()
_setLayerStyle
功能()
addData
功能()
的addEventListener
功能()
addLayer
功能()
addOneTimeEventListener
功能()
bindPopup
功能()
bringToBack
功能()
bringToFront
功能()
callInitHooks
功能()
clearAllEventListeners
功能()
clearLayers
功能()
eachLayer
功能()
火
功能()
fireEvent
功能()
的getBounds
功能()
getLayer
功能()
getLayerId
功能()
getLayers
功能()
hasEventListeners
功能()
hasLayer
功能()
初始化
功能()
离
功能()
上
功能()
使用onAdd
功能()
onRemove
功能()
一旦
功能()
removeEventListener
功能()
removeLayer
功能()
resetStyle
功能()
的setStyle
功能()
setZIndex
功能()
toGeoJSON
解决方法
我上次用了
map._onResize();
并帮助我刷新地图.也许有点黑客,但它的工作.
在你的代码中将会是area._onResize()
P.S:也许你应该尝试改变设置新的不透明度值的方式 – 尝试改变
function clicked(){ this.options.style.fillOpacity = 0.8; }
到那个
function clicked(){ this.setStyle({fillOpacity: 0.2}); }