【问题标题】:Google Maps API MarkerOptions Icon SVG not urlGoogle Maps API MarkerOptions 图标 SVG 不是 url
【发布时间】:2017-08-01 23:12:05
【问题描述】:

Google Maps API 的 MarkerOptions 对象规范 (google.maps.MarkerOptions) 图标属性 类型:字符串仅被视为将字符串作为 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(valuation) 返回不是 url 的字符串:

<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>

它不会将图标呈现为标记,并且标记保留在那里但没有 SVG 样式。

【问题讨论】:

    标签: google-maps reactjs svg


    【解决方案1】:

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

    【讨论】:

    • 如果给定一个简单的路径,这确实有效,例如:'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.9l6.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 0l7.2-5.3 7.2 0.2c-5.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.6l-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不是。我仍然不确定为什么。
    • 建议的解决方案需要从 SVG 中提取路径。如果您真的想使用完整的 SVG,This 的回答可能会有所帮助。
    猜你喜欢
    • 2013-04-25
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    相关资源
    最近更新 更多