2016-07-27 85 views
0

我想设置标签的颜色,但我不认为setLabelColor()是一个内置功能:谷歌地图API setLabelColor

google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
     infowindow.setContent(amenities[i][0]); 
     infowindow.open(map, marker); 
     for (j = 0; j < gmarkers.length; j++) { 
      gmarkers[j].setIcon(blackCircle); //resets default icon when another is clicked 
      gmarkers[j].setLabelColor('white'); 
     } 
     marker.setIcon(whiteCircle); //Sets clicked icon 
     marker.setLabelColor('black'); 
    } 
})(marker, i)); 

我得到一个错误:

Uncaught TypeError: gmarkers[j].setLabelColor is not a function 

我知道setLabel()是一个函数,但我只想改变颜色,标签本身是好的,因为它是?!

+0

确定'gmarkers'有标记?我认为问题不在于你的代码的这一部分。 –

+0

是的,我确定。如果我删除'gmarkers [j] .setLabelColor('white');'和'marker.setLabelColor('black')''行,则代码正常工作。 – hrtestrt

+0

你能创建一个包括完整代码的小提琴吗? –

回答

0

使用setLabel的标签设置为MarkerLabel对象

要跟踪标签,所以你可以把它一样,一个选择是将其保存在标记的自定义属性(下面的例子使用._labelText) 。

marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(amenities[i][1], amenities[i][2]), 
    map: map, 
    icon: blackCircle, //Sets default icon 
    zIndex: -100, 
    label: { 
    text: "" + amenities[i][3], 
    color: '#EDEBDD' 
    }, 
    _labelText: "" + amenities[i][3] 
}); 
gmarkers.push(marker); 
google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
    infowindow.setContent(amenities[i][0]); 
    infowindow.open(map, marker); 
    for (j = 0; j < gmarkers.length; j++) { 
     gmarkers[j].setIcon(blackCircle); //resets default icon when another is clicked 
     gmarkers[j].setLabel({ 
     color: 'white', 
     text: gmarkers[j]._labelText 
     }); 
     gmarkers[j].setZIndex(-100); 
    } 
    this.setIcon(whiteCircle); //Sets clicked icon 
    this.setLabel({ 
     color: 'black', 
     text: this._labelText 
    }); 
    this.setZIndex(100); 
    } 
})(marker, i)); 

updated fiddle

+0

感谢这个,我实现了这里: https://jsfiddle.net/5aa9jtax/3/ 但它弄乱被点击一个编号系统? – hrtestrt

+0

在您的问题得到解答之前,发布[最小,完整,测试和可读示例](http://stackoverflow.com/help/mcve)**会对您更有用。要解决此问题,您需要保留有关标记标签的信息。 – geocodezip