2014-01-26 3 views
0

У меня есть HTML-страница, содержащая карту Google. У меня есть таймер, который вызывает функцию, которая перемещает карту. Карта перемещается, но она мигает каждый раз. Так как исправить эту ошибку?Карта Google во время установки координаты мигает

function Replace(lt,ln) 
{ 
var location = new google.maps.LatLng(lt, ln); 
    var myOptions = { 
     zoom: 15, 
     center: location, 
     mapTypeControl: true, 
     mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DROPDOWN_MENU }, 
     navigationControl: true, 
     navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL }, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    var companyPos = new google.maps.LatLng(lt, ln); 
    var companyMarker = new google.maps.Marker({ 
     position: companyPos, 
     map: map, 
     title: "Test" 
    }); 

    } 

ответ

0

Это не ошибка, вы создаете новые карты инстанции каждый раз при запуске этой функции (что приводит к мигания).

Отделите код, создать карты/маркер-экземпляр на первом запуске, а затем обновить только карту-центр и маркер-позиция:

function Replace(lt,ln){ 

    var location = new google.maps.LatLng(lt, ln); 
    var companyPos = new google.maps.LatLng(lt, ln); 
    //map not created yet 
    if(!window.map){ 
      var myOptions = { 
      zoom: 3, 
      center: location 
      }; 
      //Note: map and companyMarker must be global 
      map = new google.maps.Map(document.getElementById("map_canvas"), 
            myOptions); 
      companyMarker = new google.maps.Marker({ 
      position: companyPos, 
      map: map, 
      title: "Test" 
      }); 
    } 
    //map already initialized, update center and position 
    else{ 
     map.setCenter(location); 
     companyMarker.setPosition(companyPos); 
    } 
} 
Смежные вопросы