2015-05-22 5 views
3

Я новичок в Google Map, поэтому, пожалуйста, извините, если это немой вопрос.Uncaught TypeError: Невозможно прочитать свойство getZoom неопределенного

Я пытаюсь использовать маркер кластера Вариант с Google Maps

Это мой код

var map; 
var global_markers = []; 
var markers = [ 
    [37.09024, -95.712891, 'trialhead0'], 
    [37.09024, -95.712891, 'trialhead1'], 
    [37.09024, -95.712892, 'trialhead2'] 
]; 
var infowindow = new google.maps.InfoWindow({}); 

function initialize() { 
    geocoder = new google.maps.Geocoder(); 
    var latlng = new google.maps.LatLng(40.77627, -73.910965); 
    var myOptions = { 
     zoom: 1, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    addMarker(); 
} 

function addMarker() { 
    for (var i = 0; i < markers.length; i++) { 
     // obtain the attribues of each marker 
     var lat = parseFloat(markers[i][0]); 
     var lng = parseFloat(markers[i][1]); 
     var trailhead_name = markers[i][2]; 
     var myLatlng = new google.maps.LatLng(lat, lng); 
     var contentString = "<html><body><div><p><h2>" + trailhead_name + "</h2></p></div></body></html>"; 
     var marker = new google.maps.Marker({ 
      position: myLatlng, 
      map: map, 
      title: "Coordinates: " + lat + " , " + lng + " | Trailhead name: " + trailhead_name 
     }); 
     marker['infowindow'] = contentString; 
     global_markers[i] = marker; 
     global_markers.push(marker); 
     google.maps.event.addListener(global_markers[i], 'click', function() { 
      infowindow.setContent(this['infowindow']); 
      infowindow.open(map, this); 
     }); 
    } 
} 
var markerCluster = new MarkerClusterer(map, global_markers); 
window.onload = initialize; 

Когда я запускаю этот код, я получаю следующее исключение при консоли браузера

Uncaught TypeError: Невозможно прочитать свойство «getZoom» undefined

Это мой fiddl е

http://jsfiddle.net/ZLuTg/1023/

Как решить эту проблему ??

ответ

5

map только конкретизируется в в обработчике окне OnLoad, но он передается MarkerCluster конструктору в качестве аргумента перед тем его. Вот почему это не определено.

Удостоверьтесь, что MarkerCluster построен после map.

http://jsfiddle.net/ZLuTg/1025/

+0

Большое спасибо, когда я clcik на Marker Icon, как я могу отобразить 3 иконки ?? – Kiran

+0

Например, как показано в этой скрипте .http: //jsfiddle.net/doktormolle/H4EJu/ – Kiran

+0

Пожалуйста, задайте новый вопрос и покажите свои попытки получить желаемый результат. – marekful