【发布时间】:2017-05-17 05:22:37
【问题描述】:
问题如下,有svg文件格式:
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px">
<symbol id="gear" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
<path fill="#inherit" stroke="#000000" d="..."/>
</symbol>
<symbol id="drill" viewBox="0 0 300 300" xml:space="preserve">
<path style="stroke:none; fill:#000000" d="..."/>
</symbol>
<svg>
执行以下操作以使该文件成为图标并显示在地图上。非常图标收集:
SVG.create('img/iconsSvg.svg#gear','img/iconsSvg.svg#drill')可以用html显示
var SVG={
svgns:'http://www.w3.org/2000/svg',
xlink:'http://www.w3.org/1999/xlink',
create:function(){
let pathUse=arguments;
var svg=document.createElementNS(SVG.svgns, 'svg');
for (let i = 0; i < pathUse.length; i++) {
let use=document.createElementNS(SVG.svgns, 'use');
use.setAttributeNS(SVG.xlink, 'xlink:href', pathUse[i]);
svg.appendChild(use);
}
return svg;
}
}
在 openlayers 中设置 this 的样式:
function setStyleIcon(){
return new ol.style.Style({
image: new ol.style.Icon({
img:SVG.create('img/iconsSvg.svg#gear'),
imgSize:[30,30]
})
});
}
当它崩溃时出现错误:CanvasRenderingContext2D.drawImage 的参数 1 无法转换为任何一个:HTMLImageElement、HTMLCanvasElement、HTMLVideoElement、ImageBitmap。
不知道怎么把svg翻译成canvas
但我不能把它放在地图上,提前谢谢你的帮助
【问题讨论】: