Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何随着缩放级别的变化调整地图上SVG图像的大小?_Javascript_Css_D3.js_Leaflet - Fatal编程技术网

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

Javascript 如何随着缩放级别的变化调整地图上SVG图像的大小?,javascript,css,d3.js,leaflet,Javascript,Css,D3.js,Leaflet,我使用传单允许用户在地图上绘制自定义SVG路径(多边形)。问题是,当用户缩小时,多边形变得太大,并遮挡了地图的其余部分 我在网上查找了一些示例,我所看到的资源使用了d3.geo库中的geo函数。而在我的用例中,我在地图上使用d3、传单和SVG层 有没有一个公式可以用来正确调整对象的大小?我知道我将不得不应用一个基于宽度高度和当前缩放级别的转换函数,但我想知道是否有一个标准的方法来实现这一点 编辑:这是我找到的一个资源,但它使用d3 geofunctions,从我收集的数据来看,每次重置地图视图时

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

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

有没有一个公式可以用来正确调整对象的大小?我知道我将不得不应用一个基于宽度高度和当前缩放级别的转换函数,但我想知道是否有一个标准的方法来实现这一点

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


只需应用CSS更改SVG的大小,或者只需使用JS或每次触发滚动事件时对SVG使用的任何东西修改SVG即可

谷歌地图的api中有一个事件,当缩放级别改变时会触发该事件。

这个例子看起来不错。因为缩放SVG会触发重新绘制,所以我不认为每次重置地图时都可以避免重新绘制多边形