我正在尝试使用 svg 文件作为我的标记图标。一切看起来都很棒,除了标记周围有一个巨大的空白空间,这使得它们在分组时难以与之交互。我尝试使用icon.size和icon.scaledSize来解决我的问题,但我仍然无法删除空白区域。也许这是我的 svg 文件?
function initMap() {
var myLatLng = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: myLatLng
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: {
url: 'assets/icons/art.svg'
}
});
}
这是SVG(转换为PNG( 有问题的实际 svg
这是问题所在
编辑:
事实证明,使用Chrome的设备模式会干扰地图渲染图标的方式。
在遵循@bonnie建议(从我的文件中裁剪任何多余的空白空间(、调整icon.scale
和icon.scaledSize
属性并退出设备模式后,我最终看到了预期的结果。
最后一个图标对象是:
icon = {
url: 'assets/icons/art.svg',
size: new google.maps.Size(35, 35),
scaledSize: new google.maps.Size(40, 40)
};
谷歌地图渲染icon.size
为图像 &icon.scaledSize
作为图像
我仍然不知道为什么Chrome的设备模式无法正确呈现标记图标。
SVG 的视框太大。如果在图形程序(如 Illustrator(中打开,则可以调整美工板的大小,使其在图形边缘周围没有空白区域。