为什么google.maps.Marker的svg图标会被切断? 我尝试了许多带有大小和scaledSize的组合...
var marker = new google.maps.Marker({
position: new google.maps.LatLng({lat: el.lat, lng: el.lon}),
icon: {
url: "/images/icons/observation_" + el.rate + ".svg",
size: new google.maps.Size(20, 20),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(10, 10),
scaledSize: new google.maps.Size(20, 20)
},
zIndex: 6,
map: map.map
});
Svg图标应为20x20像素。
答案 0 :(得分:3)
您必须设置svg元素的width和height属性,如下所示:
<svg height="40px" width="40px" ... >
答案 1 :(得分:2)
您可以使用events中的zoom_changed
并添加事件监听器,以便在缩放时刷新标记图标
以下代码
var map;
map = new google.maps.Map(document.getElementById('map'), {
center: {
lat: -34.397,
lng: 150.644
},
zoom: 8
});
var icon = {
url: "http://svgshare.com/i/1jz.svg",
}
var marker = new google.maps.Marker({
position: new google.maps.LatLng({
lat: -34.397,
lng: 150.644
}),
icon: icon,
/*icon: {
url: "http://svgshare.com/i/1jz.svg",
// size: new google.maps.Size(20, 20),
// origin: new google.maps.Point(5, 5),
// anchor: new google.maps.Point(10, 10),
// scaledSize: new google.maps.Size(20, 20)
},*/
zIndex: 6,
map: map
});
google.maps.event.addListener(map, 'zoom_changed', function() {
marker.setIcon(icon);
});