如何随着缩放级别的变化调整地图上 SVG 图像的大小?

How do I resize SVG images on a map as the zoom level changes?

我正在使用传单来允许用户在地图上绘制自定义 SVG 路径(多边形)。问题是当用户缩小时,多边形变得太大并遮挡了地图的其余部分。

我在网上查找示例,我遇到的资源使用了 d3.geo 库中的地理函数。而在我的用例中,我在地图上使用了 d3、传单和 SVG 图层。

是否有我可以应用的公式来正确调整对象的大小?我知道我必须应用基于宽度高度和当前缩放级别的转换功能,但我想知道是否有标准方法可以做到这一点?

编辑:这是我找到的一个资源,但它使用了 d3 geofunctions,据我所知,每次重置地图视图时似乎都会重新绘制多边形(这可能效率低下(?)

http://www.d3noob.org/2014/03/leafletjs-map-with-d3js-objects-that.html

只需应用 CSS 来更改 SVG 的大小,或者在每次触发滚动事件时使用 JS 或您用于 SVG 的任何内容修改 SVG。

Google 地图在其 api 中有一个事件,该事件在缩放级别更改时触发。 https://developers.google.com/maps/documentation/javascript/events#EventProperties