【发布时间】:2016-08-04 09:16:37
【问题描述】:
希望有人能帮助我:
我的情况:
我目前正在使用谷歌地图,我做了一些标记来代表一次旅行。现在这些标记的图标可以很容易地更改为您选择的图像并定义如下:
var marker = new google.maps.Marker({
label: name[0],
title: name,
draggable: true,
position: { lat: lat, lng: lng },
icon: this._imgNormal,
map: _map,
customInfo: nearHotel.ID,
descr: nearHotel.descr
});
但现在我需要将这些图标交换为 SVG 而不是 PNG。
我的尝试
首先我会解释我不使用这种简单方法的原因,然后在标记中使用它:
var icon = {
path: "M-20,0a20,20 0 1,0 40,0a20,20 0 1,0 -40,0",
fillColor: '#FF0000',
fillOpacity: .6,
anchor: new google.maps.Point(0,0),
strokeWeight: 0,
scale: 1
}
这是因为我想最终制作更复杂的 SVG,据我所知,这种方法不允许我在多个矩形内制作花。
我做了一些研究,并在这个网站上找到了一种方法:
Create Google Maps Markers with Inline SVG
我的问题和疑问
在 Chrome 和 Firefox 中这可以工作,但在 IE 中不行...我开始查找为什么它不能工作,它说它必须对 encodeURIComponent 用户做一些事情,这在 IE 中不会以同样的方式工作这可能就是它不受支持的原因。
有谁知道是否有某种方法可以使这种方法在 IE 中也能正常工作? 或者是否有一种完全不同的方式来使用适用于任何浏览器的复杂 SVG?
很高兴听到你的回答,在此先谢谢你
我在 Illustrator 中创建的 SVG 示例
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="85.04px" height="85.04px" viewBox="0 0 85.04 85.04" enable-background="new 0 0 85.04 85.04" xml:space="preserve">
<g>
<g>
<circle fill="#706F6F" cx="42.466" cy="42.143" r="20.582"/>
</g>
<g>
<g>
<circle fill="#FFFFFF" cx="42.466" cy="42.143" r="18.5"/>
</g>
<circle fill="#CE1222" cx="42.466" cy="42.143" r="13.5"/>
</g>
</g>
</svg>
【问题讨论】:
-
这是 IE 的常见问题:stackoverflow.com/questions/8926285/svg-browser-support。我有一个类似的目的,我编写了一个函数来检测它是否是 IE,然后将图像作为 .png
-
我明白了,所以您将其用作解决方法。我仍然会等待,看看是否还有其他可能性,但感谢@IntercoolerTurbo 的好主意,我可能会考虑这样做。
-
caniuse.com/#search=svg - 您想要/需要针对哪个版本的 IE? IE 9 及更高版本应该没问题。 IE 8 占全球浏览器使用量的 0.77%……更不用说早期版本了。
-
我可以在 IE9 中完美运行这个示例:jsfiddle.net/upsidown/eLcNq
-
@MrUpsidown 我在我的问题中说我提供的链接中的示例在 IE 中不起作用,而不是第一个代码示例不起作用。为图标添加路径效果很好,但是有没有办法用我正在使用的 SVG 来做到这一点?我编辑了我的问题并添加了一个带有我使用的 SVG 示例的 sn-p。是否可以组合它包含的不同路径以使其也可以作为图标工作?感谢您的帮助和努力
标签: javascript css google-maps svg google-maps-api-3