Javascript 在谷歌地图上设置位置后,标记消失

Javascript 在谷歌地图上设置位置后,标记消失,javascript,html,google-maps,Javascript,Html,Google Maps,我在谷歌地图上做了一个GPS定位节目。这里的问题是google标记只在第一次出现(设置google标记部分)。每次调用setPosition方法后,它都会消失。任何帮助都将不胜感激 <!DOCTYPE HTML> <html> <head> <script src="http://maps.google.com/maps/api/js?sensor=false"> </script> <script type="text/java

我在谷歌地图上做了一个GPS定位节目。这里的问题是google标记只在第一次出现(设置google标记部分)。每次调用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>

var指数=0;
var纬度=新阵列(35.71434,35.715612,35.711779,35.70913,35.710646);
变量经度=新阵列(-77.92854,-77.924076,-77.925171,-77.925943,-77.930278);
var映射选项;
var coords=new google.maps.LatLng(纬度[index],经度[index]);
var-marker=null;
var映射;
var newPoint;
函数自动更新(){
navigator.geolocation.getCurrentPosition(函数(位置){
映射选项={
缩放:15,
中心:coords,
mapTypeControl:true,
导航控制选项:{
样式:google.maps.NavigationControlStyle.SMALL
},
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=新建google.maps.map(
document.getElementById(“mapContainer”),mapOptions
);
如果(标记){
newPoint=newgoogle.maps.LatLng(纬度[index],经度[index]);
标记器。设置位置(新点);
}   
否则{
marker=新的google.maps.marker({
职位:coords,
地图:地图,
});
}
if(newPoint!=null){
地图设置中心(新点);
marker.setVisible(true);
}
});
指数=指数+1;
如果(索引==5){
指数=0;
}
设置超时(自动更新,5000);
}
自动更新();
#地图容器{
高度:500px;
宽度:800px;
边框:10px实心#eaeaea;
}

感谢您的帮助。

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

        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
        );

或者执行与标记类似的操作,只创建一次,如果已经初始化/创建,只需更改中心。

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

        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
        );

或者执行与使用标记类似的操作,只创建一次,如果已经初始化/创建了标记,只需更改中心。

使用调试器,以便您可以报告标记未显示映射的原因(或者至少使用javascript控制台检查错误)。通过使用if语句检查映射即可。谢谢!使用调试器,以便您可以报告为什么它没有显示映射(或者至少使用javascript控制台检查错误)。通过使用if语句检查映射来获得它。谢谢!