You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Leaflet加载GeoJSON生成的SVG设置匹配CSS的样式?

问题:Leaflet中SVG尺寸与CSS设置不匹配

已经通过GeoJSON文件在Leaflet中成功显示地图,但自定义CSS与实际显示的SVG样式不匹配(如下图),需要将overflow设置为visible。

开发者工具显示

自定义CSS代码

body, #map {
   overflow: visible;
   zoom: 100%;
   width: 1500px;
   height: 1000px;
   margin: 0px;
   padding: 0px;
}

实际生成的SVG结构

<body>
<div id="map" class="leaflet-container leaflet-touch leaflet-fade-anim" tabindex="0" style="position: relative;"><div class="leaflet-pane leaflet-map-pane" style="transform: translate3d(0px, 0px, 0px);"><div class="leaflet-pane leaflet-tile-pane"></div><div class="leaflet-pane leaflet-overlay-pane">
<svg pointer-events="none" width="1800" height="1200" viewBox="-150 -100 1800 1200" style="transform: translate3d(-150px, -100px, 0px);">
<g>~~~</g>
</svg>~~~

疑问

明明给#map设置了width:1500px、height:1000px,为什么实际生成的SVG却是width:1800、height:1200?

加载GeoJSON的代码

$.getJSON("japan.geojson", function(data) {
    let geojsonback = L.geoJson(data, {
        onEachFeature: function (feature, layer) {
                    },
    });
    geojsonback.addTo(map);
    });

尝试过的无效方案

曾尝试给GeoJSON图层添加自定义样式,但没有效果:

const myPolygonStyle={
    "width":1500,
    "viewBox":"0 0 1500 1000"
}
$.getJSON("japan.geojson", function(data) {
    let geojsonback = L.geoJson(data, {
        style:myPolygonStyle,
        onEachFeature: function (feature, layer) {
                    },
    });
    geojsonback.addTo(map);
    console.log(geojsonback)
    });

内容的提问来源于stack exchange,提问作者Kota

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 04:05:38