繁体   English   中英

传单中的javascript地图如何刷新

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM