我正在尝试使用SVG图像在OpenLayers-3 (OL3)中创建地图“标记”(即地图标记)。
目前,我使用PNG图像作为引用ol.style.Icon源("src")属性的pindrops正常。然而,使用SVG图像则失败了。有没有其他方法可以以同样的方式使用SVG图像?也许是通过使用除ol.style.Icon之外的参考呢?在Open Layers中已经有很多内置的SVG,所以这应该是可能的,但我还没有找到在OL3中使其工作的方法。是否有其他在OL3中进行此操作的方法我应该考虑呢?
请注意: 我们已经尝试使用ol.Vector图层,但当用户缩放时,SVG图像的大小会增大/缩小,这是一个不充分的解决方案。
OL3(失败):
var createMapMarkerImage = function() {
return function(feature, resolution) {
var iconStyle = new ol.style.Style({
image: new ol.style.Icon( ({
src: 'img/map_pindrop.svg' // OL3 doesn’t like this, but accepts a .PNG just fine
}))
});
return [iconStyle];
};
};
非常相似的功能,下面这个我在网上找到的例子几乎完美,如果不是因为该示例使用OpenLayers-2(OL2)功能调用了openlayers.js库(而不是OL3的ol.js库)。遗憾的是,交换这些javascript文件失败了。
OL2(可行但是使用了旧的OL库): http://dev.openlayers.org/sandbox/camptocamp/tipi/examples/vector-symbols.html
搜索在线解决方案似乎只会产生其他寻求解决方案的困惑人。
请帮忙处理,
FreeBeer