首页 文章

外部SVG作为Google Map api标记 - 是或否

提问于
浏览
2

假设我有一个 Map 应用程序,我正在创建一些外部用户数据的标记 . 用户可以定义他们想要用作标记图标的自定义图像的路径 . 我的问题是svg文件 . 通过阅读相关的stackoverflow线程并尝试建议的解决方案后,我仍然无法在Firefox和IE上工作 .

有人说Google Maps API不支持外部svg文件作为图标,使其工作的唯一方法是使用路径表示法,但有些人说可以使用外部文件,但使用google.maps.Icon对象 .

问题:在那个时间点,我们是否可以使用外部svg作为标记图标以及如何使用外部svg .

这是一个简单的例子链接到我的fiddle .

我正在创建如下标记

marker = new google.maps.Marker({
    position: {
      lat: -34.397,
      lng: 150.644
    },
    title: 'SVG Marker',
    icon: {
      url: 'https://cdn.shopify.com/s/files/1/0250/8090/files/R_final.svg',
      anchor: new google.maps.Point(10, 10),
      //scaledSize: new google.maps.Size(20, 20),
      size: new google.maps.Size(50, 50)
    },
    map: map

  });

Chrome - 有效 .

Firefox,IE - 标记不显示 .

如果我取消注释scaleSize属性,我对IE进行了奇怪的缩放 . Firefox仍然无法显示 .

路径符号对我来说似乎不是一个选项,只要你能指出我从文件中提取它的方式 .

感谢您对此的意见 .

1 回答

  • 2

    至少对于Firefox,取消注释scaledSize,并将此属性添加到标记:

    optimized:false
    

    这仍然适用于Chrome,但我无法在IE上测试它 .

    你可以在my fiddle看到它 .

    注意:我调整了你的(没有回调/异步/延迟,并立即调用initMap),因为它甚至没有在Firefox上显示 Map .

相关问题