如何随着缩放级别的变化调整地图上 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
我正在使用传单来允许用户在地图上绘制自定义 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