我也无法使用scale 调整大小。我确实发现,如果我使用MarkerImage,那么我可以缩放 svg,它看起来相当不错,就其平滑程度而言比 png 好得多。如果我使用 MarkerImage,我认为它不再是一个“符号”。
function initialize() {
var mapOptions = {
zoom: 4,
center: new google.maps.LatLng(-25.363882, 131.044922)
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var marker = new google.maps.Marker({
position: map.getCenter(),
icon: new google.maps.MarkerImage('icons/myIcon.svg',
null, null, null, new google.maps.Size(200,200)),
draggable: false,
map: map
});
}
google.maps.event.addDomListener(window, 'load', initialize);
我也在寻找更好的解决方案。
更新(2015 年 4 月 14 日)
我在complex icons 底部的文档以及symbols 的链接上方找到了这个:
将 MarkerImage 对象转换为 Icon 类型
在 Google Maps JavaScript API 3.10 版之前,复杂图标被定义为 MarkerImage 对象。 Icon 对象文字是在 3.10 版中添加的,并从 3.11 版开始替换 MarkerImage。 Icon 对象文字支持与 MarkerImage 相同的参数,允许您通过删除构造函数、将先前的参数包装在 {} 中并添加每个参数的名称来轻松地将 MarkerImage 转换为 Icon。例如:
var image = new google.maps.MarkerImage(
place.icon,
new google.maps.Size(71, 71),
new google.maps.Point(0, 0),
new google.maps.Point(17, 34),
new google.maps.Size(25, 25));
变成
var image = {
url: place.icon,
size: new google.maps.Size(71, 71),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(17, 34),
scaledSize: new google.maps.Size(25, 25)
};
我在玩 size 和 scaledSize 和 an example here。看来我可以注释掉 size 和 scaledSize 工作正常。如果size 小于scaledSize,图形将被截断。