gpt4 book ai didi

javascript - 对于谷歌地图标记,是否可以在 svg 中包含多种颜色

转载 作者:可可西里 更新时间:2023-11-01 14:43:45 26 4
gpt4 key购买 nike

所以这两天我一直在尝试做的是。

    var arr = [
{
path: "M239.68,331.38c34.206,58.142,87.12,150.48,87.12,150.48s49.609-84.922,88.56-149.76C327.52,275.94,241.84,326.34,239.68,331.38z",
fillColor: 'red',
fillOpacity: 1,
anchor: new google.maps.Point(0, 0),
strokeWeight: 0,
scale: .6,
},
{
path: "M150 0 L75 200 L225 200 Z",
fillColor: 'black',
fillOpacity: 1,
anchor: new google.maps.Point(0, 0),
strokeWeight: 0,
scale: .6,
}
];
var marker = new google.maps.Marker({
position: location,
map: map,
draggable: false,
icon: arr,
zIndex: -20,

});

所以基本上 iv 一直在尝试做的是通过组合两个或多个 svg 并将其用作标记来动态构建 svg,这可能吗?有人知道吗?我想要设置样式的唯一重要属性是颜色,这样我就有了不止一种颜色的标记。

最佳答案

在 html 中,您会看到“svg 符号”转换为实际的 SVG

您可以使用许多库来简化创建 SVG 的过程,或者您可以学习如何直接在 javascript 中创建它们……这比您想象的要容易 - 但我对其进行了硬编码 - 您可以轻松更改颜色在 SVG 中使用标准 DOM getElementById 等 -

例如,看原来的颜色是红黑色和线条

document.getElementById('p1').setAttribute('fill','green');

将红色位设置为绿色 -

var map;
var polyLine;
var polyOptions;

function initialize() {
var mapOptions = {
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: new google.maps.LatLng(0,0)
};

map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

google.maps.event.addListener(map, 'click', function(event) {

addPoint(event);
});
}

function addPoint(event) {
document.getElementById('p1').setAttribute('fill','green');
var iconUrl = "data:image/svg+xml;charset=utf-8," + escape(document.getElementById("marker").innerHTML)
var icon = {
url: iconUrl,
anchor: new google.maps.Point(0,0),
scaledSize: new google.maps.Size(40,55)
}

var marker = new google.maps.Marker({
position: event.latLng,
map: map,
draggable: false,
icon: icon,
zIndex : -20
});
}

initialize();
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&x=.js"></script>
<div id="map-canvas" style="height:400px"></div>
<div id='marker' style='display:none'><svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="110mm" height="150mm"
id="svg111"
version="1.1">
<path id="p1"
fill="red"
fill-opacity="1"
stroke-weight="0"
d="M239.68,331.38c34.206,58.142,87.12,150.48,87.12,150.48s49.609-84.922,88.56-149.76C327.52,275.94,241.84,326.34,239.68,331.38z" />
<path id="p2"
fill="black"
fill-opacity="1"
stroke-weight="0"
d="M150 0 L75 200 L225 200 Z" />
</svg></div>

关于javascript - 对于谷歌地图标记,是否可以在 svg 中包含多种颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33386284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com