leaflet.js(使用geojson数据)国家/地区标签不正确

时间:2019-01-06 03:06:09

标签: leaflet geojson

我正在使用leaflet.js(带有geojson)来显示地图。 [删除一些代码使其更简洁]。

   $.getJSON('./api/map/data', function(data){
        let minZoom = 2.25
        let defaultZoom = 2.25
        let map = L.map('map', {
            minZoom: minZoom,
            zoomSnap: 0.1
        }).setView([43, 0], defaultZoom);

        let onEachFeature = (feature, layer) => {
            var label = L.marker(layer.getBounds().getCenter(), {
                icon: L.divIcon({
                    className: 'countryLabel',
                    html: feature.properties.name,
                    iconSize: [0, 0]
                })
            }).addTo(map);
        };

        L.geoJson(data, {
            clickable: false,
            style: {},
            onEachFeature: onEachFeature,
        }).addTo(map);

我用this website下载了矢量地图。一些标签显然不正确(其中一些几乎正确)。经检查,似乎某些纬度/经度未正确设置(或看起来)。关于如何使此显示正确的任何反馈?如果我能拿出适合国家边界的标签,那就太好了(这意味着可以在需要的地方添加国家代码)。

enter image description here

1 个答案:

答案 0 :(得分:0)

问题与您的标签选项有关。此时,您的图标位置指向标签的左上角,您需要设置偏移量以将标签移至坐标中心。可能对您有帮助的财产是iconAnchor (see leaflet docs)