我也无法使用scale
进行调整大小。 我发现如果使用MarkerImage
,则可以缩放svg并且看起来非常好,比png更加平滑。 不过,如果我正在使用MarkerImage,我不认为它还是一个“symbol”。
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);
我也在寻找更好的解决方案。
更新(04/14/2015)
我在复杂图标的文档底部找到了这个,并且就在链接到符号的链接上方:
将MarkerImage对象转换为Icon类型
在Google Maps JavaScript API的3.10版本之前,复杂的图标被定义为MarkerImage对象。从3.10版本开始添加了Icon对象文字,用于替换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
,这里有一个示例。似乎我可以将 size
注释掉,scaledSize
仍然有效。如果 size
小于 scaledSize
,则图形会被裁剪。