0

我的代码如下

<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.8
            }
        });

        area.addLayer(indiaLayer);

        var indiaLayer1;

        function clickedtest() {
            var indiaLayer = L.geoJson(india, {
                style : {
                    weight : 2,
                    opacity : 1,
                    color : 'white',
                    dashArray : '3',
                    fillOpacity : 0.8
                }
            });

            area.addLayer(indiaLayer);
            indiaLayer.on('click', clicked);
            area.removeLayer(indiaLayer1);
            removeEventListener('click', clicked, indiaLayer1);
            return;
        }

        function clicked() {
            var indiaLayer1 = L.geoJson(india, {
                style : {
                    weight : 2,
                    opacity : 1,
                    color : 'white',
                    dashArray : '3',
                    fillOpacity : 0.1
                }
            });

            area.addLayer(indiaLayer1);
            indiaLayer1.on('click', clickedtest);
            area.removeLayer(indiaLayer);
            removeEventListener('click', clicked, indiaLayer);
            return;
        }
        indiaLayer.on('click', clicked);
        indiaLayer1.on('click', clickedtest);
    </script>
</body>
</html>

这里印度是一些 jeoJson 文件。在这里,我想将图层的不透明度从 0.1 更改为 0.8,反之亦然……但它给我带来了一个错误……任何帮助将不胜感激……我已经花了一整天的时间,但无法获得解决方案。帮助

您可以将任何其他 geoJson 文件用于测试目的。

4

1 回答 1

1

您是否使用 2 层只是为了更改不透明度?在这种情况下,删除所有 indiaLayer1 的东西并使用它:

indiaLayer.on('click', clicked);

function clicked(e){

    var layer = e.target;

    if (layer.style.fillOpacity == 0.1){
        layer.setStyle({
            fillOpacity: 0.9
        });
    } else{
        layer.setStyle({
            fillOpacity: 0.1
        });
    }
}
于 2013-08-30T19:03:27.077 回答