【发布时间】:2020-02-23 22:13:51
【问题描述】:
我正在使用 D3 加载不使用 topojson 的外部 SVG 地图(因为地图是手工创建的,不是传统地图)。我试图定位元素#lines path,以便单击时,每个路径都会缩放并填充其边界框。
我正在尝试使用 Mike Bostock 的 this example,但不知道如何使用未使用 topojson 的数据复制它。看到这一行:
.data(topojson.feature(us, us.objects.states).features)
这甚至可能吗?
这是我用来加载 SVG 的代码。
var mapContainer = $('.map');
d3.xml("../assets/subwaymap.svg", function(error, subwayMap) {
if (error) throw error;
$('.map').append(subwayMap.documentElement)
我尝试使用.getBBOX 获取边界框,但对它的连接方式感到困惑。似乎我见过的所有示例都使用d3.create("svg"),然后添加其中的所有功能,但由于我的数据已经附加到 DOM,这是否有必要? D3相当新。谢谢!
【问题讨论】:
-
尝试添加足够的代码(例如 svg)供我们复制。 stackoverflow.com/help/minimal-reproducible-example
-
你也不能只用 d3.select('svg') 选择附加的 svg,然后按照你提到的例子进行操作吗?
标签: javascript d3.js svg