gpt4 book ai didi

javascript - map 初始化后更改 Google Maps API 标记标签的颜色

转载 作者:行者123 更新时间:2023-11-30 11:17:54 33 4
gpt4 key购买 nike

我有一个 Google Maps API 初始化函数,其中 Marker 标签颜色(对于 markerPins 数组)设置为透明:

    markerPins[i] = new google.maps.Marker({

position: position,
map: map,
optimized: false,
icon: myPin,
label: {
color: 'transparent', // <= HERE
fontSize: '11px',
fontWeight: '900',
text: 'Example Label'
}
});

这行得通。到目前为止,还不错。

稍后(在用户操作等之后)我想更改标记标签颜色。

我写了下面的函数:

// CHANGE MARKER LABEL COLOR
function changeMarkerLabelColor(labelColor) {

for (let i = 0; i < markerPins.length; i++ ) {

markerPins[i].label.color = labelColor;

}
}

而且它确实有效。但似乎只是在 map 初始化时。

map 初始化后如何获取设置标记标签颜色?

我很乐意部署 javascript 方法、CSS 方法或任何其他方法 - 但我已经搜索、测试和试验了几个小时,但到目前为止还是空手而归。

最佳答案

标记的 label 属性没有记录在案。使用(已记录).setLabel.getLabel功能:

function changeMarkerLabelColor(labelColor) {
for (let i = 0; i < markerPins.length; i++ ) {
var label = markerPins[i].getLabel();
label.color = labelColor;
markerPins[i].setLabel(label);
}
}

proof of concept fiddle

screenshot of resulting map after setTimeout runs

代码片段:

var locations = [
{ position: {lat: 37.4419, lng: -122.1419}},
{ position: {lat: 37.4529598, lng: -122.1817252}},
{ position: {lat: 37.4688273, lng: -122.141075}},
];
var markerPins = [];

function initialize() {
var map = new google.maps.Map(
document.getElementById("map_canvas"), {
center: new google.maps.LatLng(37.4419, -122.1419),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
for (var i = 0; i < locations.length; i++) {
markerPins[i] = new google.maps.Marker({

position: locations[i].position,
map: map,
optimized: false,
label: {
color: 'transparent', // <= HERE
fontSize: '11px',
fontWeight: '900',
text: 'Example Label'
}
});
}
setTimeout(function() {
changeMarkerLabelColor("blue");
}, 5000)
}
google.maps.event.addDomListener(window, "load", initialize);

function changeMarkerLabelColor(labelColor) {
for (let i = 0; i < markerPins.length; i++) {
var label = markerPins[i].getLabel();
label.color = labelColor;
markerPins[i].setLabel(label);

}
}
html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
<div id="map_canvas"></div>

关于javascript - map 初始化后更改 Google Maps API 标记标签的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50881319/

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