2015-06-18 5 views
0

У меня есть 2 разных событий, пожалуйста, поправьте меня, если я делаю это неправильно,Google карты, передавая «карту» к другому событию

//initializing the map 
    google.maps.event.addDomListener(window, 'load', initialize); 

    //initializing the markers 
    google.maps.event.addListener(map, 'idle', showMarkers); 

Первое событие для инициализации карты (установить его) , второе событие - для запроса базы данных для новых маркеров, когда текущая граница карты изменяется (пока не работает)

Поскольку я определил «карту» внутри функции инициализации, как я могу получить к ней доступ за пределами функции и передать ее ко второму событию? Как вы можете видеть, я объявил его перед функциями, как глобальная переменная, но она до сих пор не определена в качестве аргумента события, я застрял на этом в течение нескольких дней

var map; 
function initialize(){ 
     //defining map options 
     var mapLatlng = new google.maps.LatLng(37.09024, -100.712891); 
     var mapOptions = { 
      zoom: 4, 
      center: mapLatlng 
     } 
     //defining the map itself 
     map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
    } 

    function showMarkers(){ 

     Parse.initialize("X","X"); 

     var query = new Parse.Query("business_and_reviews"); 
     var results = new Parse.Object("business_and_reviews"); 

     query.equalTo("name","McDonalds"); 

     query.find({ 
      success: function(results) { 
       console.log(results); 

       for (var i = 0; i < results.length; i++) { 
        var object = results[i]; 
       } 

       var lat = (object["attributes"]["lat"]); 
       var lng = (object["attributes"]["lng"]); 

       console.log(lat); 
       console.log(lng); 

       //adding the marker from the query 
       var marker = new google.maps.Marker({ 
        position: mapLatlong, 
        map: map, 
        title: 'Hello World!' 
       }); 

      }, 
      error: function(object, error) { 
      } 
     }); 

    } 
    //initializing the map 
    google.maps.event.addDomListener(window, 'load', initialize); 

    //initializing the markers 
    google.maps.event.addListener(map, 'idle', showMarkers); 

Для второго события «карте» не определено

ответ

0

SOvved it! поместите прослушиватель событий бездействия внутри функции инициализации, и он работает как шарм! Я предполагаю, что инициализация - это не инициализировать страницу изначально, а постоянно работает

Смежные вопросы