2017-08-01 92 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)答案可能會有所幫助。 –