Saturday, 26 March 2016

javascript - change width of outline for leaflet map depending on zoomlevel


I want to change the outline of a polygon depending on the zoomlevel. I thought it's easy to implement but there must be something wrong. My polygons dissapear when I try it with this code:




  1. to get current zoomlevel:


    map.on('zoomend', function() {

    var currentZoom = map.getZoom();
    });


  2. style function to style polygon:


    function myStyle(feature) {
    return {
    fillColor: '#1c9099',
    color: 'white',
    if (currentZoom == 15) {

    weight: 2
    } else {
    weight: 3
    }
    };
    }



Answer



I slightly changed your code, and this is working for me:



var myStyle =
{
fillColor: '#1c9099',
color: 'white',
weight: 3
};
var polygon = L.polygon(
[[51.509, -0.08],
[51.503, -0.06],
[51.51, -0.047]]);

polygon.setStyle(myStyle).addTo(map);

map.on('zoomend', function () {
currentZoom = map.getZoom();
if (currentZoom == 15) {
polygon.setStyle({weight: 2});
}
else {
polygon.setStyle({weight: 3});
}

});

First a basic style for the object (here a polygon) is set. By using the setStyle() function it is possible to change specific style attributes, while the rest of the basic style remains the same.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...