2017-08-01 45 views
1

Google Maps API的MarkerOptions对象规范(google.maps.MarkerOptions)icon属性类型:字符串仅被视为具有字符串作为url的图标。Google Maps API MarkerOptions图标SVG未url

反正有这个吗?由于传入的数据和逻辑,我有一个svg动态更改,因此在这里有一个SVG字符串,但它不是一个url,也不是svg文件中导入的url。

我可以重写MarkerOptions图标属性吗?

有太多的代码,以在这里输入,但这里是标记阵列内的对象:

const markers = [ 
    { 
    position: {lat: 28.3422, lng: -80.6112}, 
    key: 'Truckee', 
    defaultAnimation: 0, 
    valuationType: 'VALUE_CONCLUSION', 
    showInfo: false, 
    infoContent: infoContent, 
    icon: iconService(valuation) 
    } 

]

如果图标值为“/static/media/comparable-sale.cb717259 .SVG”标志将与图像渲染,但如果iconService(估值)返回一个字符串,它是不是一个网址:

<svg width=22 px height=26 px viewBox=0 0 22 26><g stroke=none strokeWidth=1 fill=none fillRule=evenodd><path d=M10.5,24 C11.2054469,24 20,15.5173578 20,10.3522518 C20,5.18714574 15.7467051,1 10.5,1 C5.25329488,1 1,5.18714574 1,10.3522518 C1,15.5173578 9.79455308,24 10.5,24 Z stroke=#FFC220 strokeWidth=1.5 fill=#FFC220></path> <textfill=#FFC220 x=50% y=50% textAnchor=middle fontWeight=700 fontSize=12px transform=translate(-0.3, 2.5) fontFamily='Lato', sans-serif> null</text></g></svg>

它的Wi不会将图标渲染为标记,并且标记仍然存在,但没有SVG样式。

回答

0

您可以将Symbol对象与从iconService(valuation)返回的路径传递给标记的icon属性。

+0

如果给出简单的路径,则确实有效,例如: 'M24.5 9h-8.1l-2.9-7.7C13.4 1.1 13.2 1 13 1c-0.2 0-0.4 0.1-0.5 0.3L9.6 9H1 .5C1.3 9 1.1 9.1 1 9.3 1 9.5 1 9.8 1.2 9.9 16.7 5.8L5 24.3c-0.1 0.2 0 0.4 0.2 0.6 0.2 0.1 0.4 0.1 0.6 0 7 7.2-5.3 7.2 5.3c0.1 0.1 0.2 0.1 0.3 0.1 0.1 0 0.2 0 0.3-0.1 0.2-0.1 0.2-0.4 0.2-0.61-2.9-8.7 6.7-5.8C25 9.8 25 9.5 25 9.3 24.9 9.1 24.7 9 24.5 9z' 但是上面给出的SVG的整体传递给它“T。我仍然不确定为什么。 – Franklin

+0

建议的解决方案需要从SVG中提取路径。如果你真的想使用完整的SVG,[This](http://stackoverflow.com/a/30890373/634386)答案可能会有所帮助。 –