[英]javascript map in leaflet how to refresh
我通过使用传单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对象上可用的函数(即,该对象位于单击的函数中……用于此目的的一个或不存在的对象)
您可以在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());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.