有一段时间我觉得我的代码有问题,但看起来libre地图上的svg文件存在问题。
我一直试图将他们的svg文件与jvectormaps一起使用,但无论如何它们都无法工作。然后我尝试使用object和img标签来嵌入它们,但它们仍然无法工作,所以很明显这些svg文件存在问题。我尝试了一些方法,比如删除xml标签,并更新doctype,但仍然没有运气。
这是我遇到问题的文件之一。 http://libremap.org/data/boundary/2000/sub_county/svg/cs42_d00.svg
答案 0 :(得分:0)
是。他们的SVG存在问题。根<svg>
元素应该具有xmlns
属性,但它不会。
EG。您链接的地图以:
开头<svg width="100%" height="100%" preserveAspectRatio="xMidYMax"
viewBox="2.682664 439.717923 49.914144 29.355176">
它应该是:
<svg xmlns="http://www.w3.org/2000/svg"
width="100%" height="100%" preserveAspectRatio="xMidYMax"
viewBox="2.682664 439.717923 49.914144 29.355176">
独立SVG必须具有namespace属性。你应该把它作为一个bug报告给他们。
在此期间,您可以下载SVG并自行更正。然后使用您的本地副本。
<强>更新强>
SVG还有另一个问题。它将fill
设置为none
,stroke-width
设置为0
(请参阅第8行)。因此默认情况下不显示任何内容如果你改变其中任何一个(见第8行),它将显示。
<g id="Unknown_Area_Type_cs42_d00_e00" style="fill:grey;stroke:rgb(255,0,0);
stroke-width:0.01;stroke-linecap:round">
也许您打算使用CSS来设置地图样式。拥有以下内容也应该有效:
g#Unknown_Area_Type_cs42_d00_e00 *
{
fill: grey;
stroke:rgb(255,0,0);
stroke-width:0.01;
}