Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
一个大型SVG或多个小型SVG容器_Svg_D3.js - Fatal编程技术网

一个大型SVG或多个小型SVG容器

一个大型SVG或多个小型SVG容器,svg,d3.js,Svg,D3.js,我在地图上添加了30-50个SVG形状和路径。这些形状和路径的位置将根据地图缩放而改变。我已经确定了两种将这些形状添加到地图的方法: 为每个单独的形状/路径创建一个小型SVG容器。将形状放置在容器内的设定点处。使用CSS相对于窗口定位容器。缩放时重新定位容器 创建一个包含所有形状和路径的大型SVG容器,覆盖整个窗口。使用SVG形状坐标定位形状。缩放时重新定位形状,缩放时调整SVG容器的大小 是否有任何性能方面的问题会使一种方法优于另一种方法?使用一个大型容器可能会更具性能,但最终将取决于您的特定

我在地图上添加了30-50个SVG形状和路径。这些形状和路径的位置将根据地图缩放而改变。我已经确定了两种将这些形状添加到地图的方法:

  • 为每个单独的形状/路径创建一个小型SVG容器。将形状放置在容器内的设定点处。使用CSS相对于窗口定位容器。缩放时重新定位容器
  • 创建一个包含所有形状和路径的大型SVG容器,覆盖整个窗口。使用SVG形状坐标定位形状。缩放时重新定位形状,缩放时调整SVG容器的大小

  • 是否有任何性能方面的问题会使一种方法优于另一种方法?

    使用一个大型容器可能会更具性能,但最终将取决于您的特定用例。我认为性能上没有差异。一个大容器将使svg元素的操作更容易。如果元素可以重叠,则很难将它们定位在svg之外。考虑使用元素。为什么需要在缩放时重新定位形状?为什么不让SVG/渲染器为您做这件事呢?缩放后,我更改了shape X和Y属性以反映div的新大小。这是您所指的还是有更好的方法?