Rou*_*ica 1 javascript css google-maps-api-3
我有一个 Google Maps API 初始化函数,其中标记标签颜色(用于标记针数组)设置为transparent:
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'
}
});
Run Code Online (Sandbox Code Playgroud)
这有效。到现在为止还挺好。
稍后(遵循用户操作等)我想更改标记标签颜色。
我编写了以下函数:
// CHANGE MARKER LABEL COLOR
function changeMarkerLabelColor(labelColor) {
for (let i = 0; i < markerPins.length; i++ ) {
markerPins[i].label.color = labelColor;
}
}
Run Code Online (Sandbox Code Playgroud)
它确实有效。但似乎只是在地图初始化时。
地图初始化后如何才能get和set标记标签颜色?
我很高兴部署 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);
}
}
Run Code Online (Sandbox Code Playgroud)
代码片段:
function changeMarkerLabelColor(labelColor) {
for (let i = 0; i < markerPins.length; i++ ) {
var label = markerPins[i].getLabel();
label.color = labelColor;
markerPins[i].setLabel(label);
}
}
Run Code Online (Sandbox Code Playgroud)
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);
}
}Run Code Online (Sandbox Code Playgroud)
html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}Run Code Online (Sandbox Code Playgroud)