【发布时间】:2016-03-02 19:41:18
【问题描述】:
这是我在 interactive map 上的第三个后续问题,带有工具提示。
原始地图使用美国各州坐标。我正在尝试构建欧洲地图(因此我的 previous question 排除了一些多边形悬停以绘制大陆的物理形状,但仅允许在欧盟成员国上方显示工具提示)。
在我的工作中,我最初受到Peter Collingridge svg tutorial 的启发,其中大多数国家的多边形都用svg paths 表示。对于 SVG 地图 的 source,他正在为 Wikimedia 提供建议,我在那里找到了一个 Firefox Mozilla Europe map,其中 country paths 的定义非常明确。
一切都很顺利,直到我偶然发现两个国家:俄罗斯和英国。
在最初的USA dataset 中,甚至由多个多边形组成的状态(例如马萨诸塞州)都用一个唯一的 d: 属性表示。
{id:"MA",n:"Massachusets", d:"M899.62349,(...), 153.35923L855.45082,152.06593Z"},
而上面提到的英国和俄罗斯用两个不同的ds表示:
<g id="ru" transform="matrix(1.43317, 0, 0, 1.43317, -2435.49, -1086.58)">
<path id="ru-main" d="M 9462.6109,(...),2763.2929 z "/>
<path id="ru-kgd" d="M 6989.6109,(...),3728.389 z "/>
</g>
还有这个属性transform = "matrix(...)"
我已经通过在 Mozilla Firefox 地图中应用 this tool 解决了这个问题,但俄罗斯由具有两个单独 ID 的两条路径组成:id="ru-main" 和 id="ru-kgd"UK 相同。
我想确保每当用户悬停在俄罗斯大陆或加里宁格勒地带上方时,俄罗斯的整个领土都会突出显示。
有办法吗?
【问题讨论】:
标签: javascript css d3.js svg