Leaflet: Error in geoJson overlay at Russia Finland border

允我心安 提交于 2019-12-02 02:23:49

What happens if you use the geoJson? For admin 0 level geographies like this (country level) a geoJson might suffice in terms of detail. It sounds like something is being lost when you go from geo -> topo?

Joac

So... this is a known issue on leaflet, I solved this way:

function onEachShapeFeature(feature, layer){
    var bounds = layer.getBounds && layer.getBounds();
    // The precision might need to be adjusted depending on your data
    if (bounds && (Math.abs(bounds.getEast() + bounds.getWest())) < 0.1) {
        var latlongs = layer.getLatLngs();
        latlongs.forEach(function (shape) {
            shape.forEach(function (cord) {
                if (cord.lng < 0) {
                    cord.lng += 360;
                }   
            }); 
        }); 
        layer.setLatLngs(latlongs);
    }
}
var countries = L.geoJson(data, {
        onEachFeature: onEachShapeFeature,
});

You will need underscore.js or lodash I know that is hacky... but was the best way I found.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!