如何在传单中刷新javascript地图

javascript map in leaflet how to refresh

本文关键字:刷新 javascript 地图 单中      更新时间:2023-09-26

我使用传单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对象上可用的函数(即点击函数中的这个对象……哪个用于此目的,或者不存在)

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

上次我使用

map._onResize(); 

这有助于我刷新地图。也许是一个小黑客,但是,它工作。

在您的代码中将是区域_onResize()

p.S:也许你应该尝试改变设置新不透明度值的方式——尝试改变

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

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

map._onResize()-这是一个黑客攻击,不能保证它在未来的版本中不会被删除。

area.fitBounds(area.getBounds());