编辑 advacedMarkerElement 的 pinElement 而不创建新的 PinElement

问题描述 投票:0回答:1

我将所有的 AdvancedMarkersElements 保存在一个数组中,我想使用 maptypeid_changed 事件更改它们的 Pinelements,特别是它们的字形颜色。

我想保持所有其他属性相同。 所以,我想做这样的事情

for (var j in markersDB2) 
{
    let mark = markersDB2[j];                
    mark.content.glyphColor = labelColor;
}

但我发现的唯一方法是创建一个新的 PinElement 并将其附加到 advanceMarkerElement。

但是如何为新 PinElement 保留与原始 advanceMarkerElement 中现有属性相同的属性?

有什么想法吗?

edit google-maps-advanced-marker-element
1个回答
0
投票

您可以将 PinElement 存储在标记本身的自定义属性中,并在以后更新它,而无需创建新的 PinElement。 您需要将其适应您已有的内容,但类似这样的东西应该可以工作:

//create new marker
var newMarker = new google.maps.marker.AdvancedMarkerElement({
  map: map,
  position: new google.maps.LatLng(lat, lng)
  });

//create a new pin
let myPin = new google.maps.marker.PinElement({
  background: "Red"
  });

//save the entire PinElement as a custom element of the marker
newMarker.myPinElement = myPin;     
newMarker.content = myPin.element;      

....

//To update the pin:
//change the pinelement attributes
newMarker.myPinElement.background = "Blue";           
//update the marker
newMarker.content = newMarker.myPinElement.content;   
© www.soinside.com 2019 - 2024. All rights reserved.