javascript - SVG 作为标记图标在 IE 中不起作用

标签 javascript css google-maps svg google-maps-api-3

我希望有人能够帮助我:

我的情况:

我目前正在使用谷歌地图,我做了一些标记来表示一次旅行。现在这些标记的图标可以很容易地更改为您选择的图像并定义如下:

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>

最佳答案

我在 SVG 文件上尝试了你的代码,它在 Chrome 和 IE 上对我来说也能正常工作,无论如何我在 IE 上遇到了一些 SVG 问题,我意识到我必须用像素分配宽度和高度。

例如你写的:

width="35"
height="35"

但是对于 IE,你必须这样写:

width="35px"
height="35px"

这是基于我对 SVG 的了解并将它们与 IE 一起使用,希望对您有所帮助:)

关于javascript - SVG 作为标记图标在 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36595645/

相关文章:

css - 更新描边颜色 CSS

ios - 如何在 IOS 中弯曲多段线(谷歌地图)?

javascript - Discord JS Bot 识别特定消息上的特定 react 添加和 react 删除事件

javascript - 如何使用 Bootstrap 和 Angular 表单逐步验证表单?

html - 下拉菜单未显示全文且文本未对齐

jquery - 使用 jquery 关闭可折叠菜单

Swift 如何以编程方式隐藏信息窗口

iphone - 如何在 iphone 中点击特定注释 pin 获取索引

javascript - 在 javascript 中从我的 Parse 数据库中获取图像?

javascript - fancybox 2 图像刷新