[英]Drawing svg circles with Google Maps
這感覺有點笨拙,但顯然可以在 SVG 中徒手畫一個圓圈,然后將該繪制的元素作為標記傳遞給地圖:
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
}
var marker = new google.maps.Marker({
position: {lat: 55, lng: 0},
map: map,
draggable: false,
icon: icon
});
非常類似於duhaime發布的答案,我之前使用過這種方法通過使用
google.maps.SymbolPath.CIRCLE
在路徑屬性中(SymbolPath 只是幾個內置形狀的枚舉,CIRCLE 等同於“0”)。
不完全確定基本原理(假設原始大小實際上是 2px 寬),但是您可以像半徑一樣使用“比例”,因此比例為 20 將得到 40 像素的直徑。 如果您添加strokeWeight,這將通過筆畫寬度添加到總直徑。 我認為總直徑的公式可能是 (scale + round(0.5 * stoke)) * 2,因為如果你使用奇數作為筆划,它最終會成為上面的偶數。
在下面的例子中,你最終會得到 46px 的圓直徑(即使筆畫只有 5)
var icon = {
path: google.maps.SymbolPath.CIRCLE,
fillColor: "#da291c",
fillOpacity: 0.5,
strokeColor: "blue",
strokeOpacity: 1,
strokeWeight: 5,
scale: 20
}
var marker = new google.maps.Marker({
position: {lat: 57, lng: -2},
map: map,
icon: icon
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.