传单中的javascript地图如何刷新

use*_*306 13 javascript jquery leaflet

我使用传单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>
Run Code Online (Sandbox Code Playgroud)

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

这里的例子

             function clicked(){

        indiaLayer.style.fillOpacity = 0.8;
            //how to refresh layer in the given map

        }

        indiaLayer.on('click', clicked);   
Run Code Online (Sandbox Code Playgroud)

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

请帮忙

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

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

Ele*_*ant 19

上次我用过

map._onResize(); 
Run Code Online (Sandbox Code Playgroud)

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

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

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

function clicked(){
    this.options.style.fillOpacity = 0.8;
 }
Run Code Online (Sandbox Code Playgroud)

那个

function clicked(){
    this.setStyle({fillOpacity: 0.2});
 }
Run Code Online (Sandbox Code Playgroud)


Pav*_*bin 17

map.invalidateSize();
Run Code Online (Sandbox Code Playgroud)

map._onResize() - 这是一个黑客,并不能保证在将来的版本中不会删除它.

  • 实际上,如果地图的大小没有改变,invalidateSize将不起作用.从文档:"检查地图容器大小是否更改并更新地图,如果是这样" (3认同)