2015-06-02 54 views
1

我想動態更改「labelContent」和「labelClass」,而不刪除標記並創建一個新標記。谷歌地圖更改標記數據而不刪除/創建(MarkerWithLabel)

我知道你可以用markersArray[i].setIcon("new-icon.png");來改變圖標。上述是否有等價物?

我的標記:

marker = new MarkerWithLabel({ 
     position: loc, 
     map: map, 
     visible: true, 
     labelContent: "999", 
     labelAnchor: new google.maps.Point(30, 33), 
     labelClass: "test-label", 
     labelStyle: {opacity: 1.0}, 
     icon: "image1.png" 

    }); 

回答

0

不應該

markersArray[i]['labelContent'] = 'new content'; 
markersArray[i]['icon'] = 'new-icon.png'; 

工作?

+0

我沒有運氣以上 :( – Bxx

0

我不會強迫標記與markersArray[i].label.setStyles();

重繪現在,它的工作原理:動態

markersArray[i].labelClass = 'labels-new-class'; 
markersArray[i].label.setStyles(); 
0

我創建標記
我得到這個片段也計算器
但忘了鏈接..仍然在搜索
這是調用函數來改變標記的標題的示例
嘗試實驗與「labelContent」 和 「labelClass」
,讓我們知道...

var map; 
 
function initialize() { 
 
     var mapOptions = { 
 
      zoom: 12, 
 
      center: new google.maps.LatLng(-7.045000, 110.426000), 
 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
 
     } 
 
     map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
 
setMarkers(map, markers); 
 
}; 
 

 
var markers = [['MSC SEMARANG', -7.045000, 110.426000, 1107, '../images/tower2.png'], ['Srondol', -7.062000, 110.418000, 1108, '../images/tower2.png']]; 
 
var infowindow = new google.maps.InfoWindow(); 
 

 
function setMarkers(map, locations) { 
 
     var marker, i; 
 
     for (i = 0; i < locations.length; i++) { 
 
      var markers = locations[i]; 
 
      var myLatLng = new google.maps.LatLng(locations[i][1], locations[i][2]); 
 
      var marker = new google.maps.Marker({ 
 
      position: myLatLng, 
 
      map: map, 
 
      title: locations[i][0], 
 
      zIndex: locations[i][3], 
 
      icon: locations[i][4] 
 
      }); 
 
      google.maps.event.addListener(marker, 'click', (function(marker, i) { 
 
      return function() { 
 
       infowindow.setContent(locations[i][0]); 
 
       infowindow.open(map, marker); 
 
       changeTitle(this); 
 
      } 
 
      })(marker, i)); 
 
     } 
 
     }; 
 

 
     function changeTitle(x) { 
 
     var count = 0; 
 
      var titles = x.get('title'); 
 
      x.set('title', 'this is chaged'); 
 
     }; 
 

 
google.maps.event.addDomListener(window, 'load', initialize);
html, body, #map-canvas { 
 
     height: 100%; 
 
     margin: 0px; 
 
     padding: 0px 
 
     }
<div id="map-canvas"></div>

希望這有助於...

相關問題