2013-05-19 70 views
1

我曾在谷歌地图上的GPS位置显示。这里的问题是,谷歌标志只出现在第一次(设置谷歌标志部分)。每次调用setPosition方法后它都会消失。任何帮助将不胜感激。标记在谷歌地图上的setPosition后消失

<!DOCTYPE HTML> 
<html> 
<head> 
<script src="http://maps.google.com/maps/api/js?sensor=false"> 
</script> 
<script type="text/javascript"> 
    var index=0; 
    var latitudes = new Array(35.71434,35.715612,35.711779,35.70913,35.710646); 
    var longitudes = new Array(-77.92854,-77.924076,-77.925171,-77.925943,-77.930278); 
    var mapOptions; 
    var coords = new google.maps.LatLng(latitudes[index],longitudes[index]); 
    var marker = null; 
    var map; 
    var newPoint; 

    function autoUpdate(){ 
     navigator.geolocation.getCurrentPosition(function(position){ 
      mapOptions = { 
       zoom: 15, 
       center: coords, 
       mapTypeControl: true, 
       navigationControlOptions: { 
        style: google.maps.NavigationControlStyle.SMALL 
       }, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      map = new google.maps.Map(
       document.getElementById("mapContainer"), mapOptions 
      ); 
      if(marker){ 
       newPoint = new google.maps.LatLng(latitudes[index],longitudes[index]); 
       marker.setPosition(newPoint); 
      } 
      else{ 
       marker = new google.maps.Marker({ 
        position: coords, 
        map: map, 
       }); 
      } 
      if(newPoint!=null){ 
       map.setCenter(newPoint); 
       marker.setVisible(true); 
      } 
     }); 

     index=index+1; 
     if(index==5){ 
      index=0; 
     } 
     setTimeout(autoUpdate,5000); 
    } 

    autoUpdate(); 
</script> 
<style type="text/css"> 
#mapContainer { 
    height: 500px; 
    width: 800px; 
    border:10px solid #eaeaea; 
} 
</style> 
</head> 
<body> 
    <div id="mapContainer"></div> 
</body> 
</html> 

谢谢你的帮助。

回答

1

将创建地图了自动更新功能的代码,只在页面加载运行一次:

 mapOptions = { 
      zoom: 15, 
      center: coords, 
      mapTypeControl: true, 
      navigationControlOptions: { 
       style: google.maps.NavigationControlStyle.SMALL 
      }, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(
      document.getElementById("mapContainer"), mapOptions 
     ); 

或者做类似你用标记做什么东西,只创造了一次,如果它已经被初始化/创建,只是改变中心。

+0

使用调试器,以便您可以报告_why_它没有显示地图(或者至少使用javascript控制台检查错误)。 – geocodezip

+0

通过使用if语句来检查地图。非常感谢! – user2399169