2014-01-26 32 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); 
    } 
}