Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当没有更多值发送到特定标记时,标记将被删除_Javascript_Google Maps_Google Maps Markers - Fatal编程技术网

Javascript 当没有更多值发送到特定标记时,标记将被删除

Javascript 当没有更多值发送到特定标记时,标记将被删除,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,大家好,everyine请帮助我,我正在尝试对我的车辆跟踪进行搜索筛选,流程是,servlet在没有ajax发送参数筛选的情况下查询所有数据。例如,我在查询结果上有5个数据,因此地图上会有5个标记,ajax每两秒钟运行一次,因此当我请求一个参数时(例如,仅显示此特殊车辆),查询结果将仅显示一个,假设屏幕上仅显示一个标记,但之前的标记不会消失并保持在屏幕上。如何将标记重置为0?谁能帮帮我吗?谢谢!这是我的密码 <script type="text/javascript"> var va

大家好,everyine请帮助我,我正在尝试对我的车辆跟踪进行搜索筛选,流程是,servlet在没有ajax发送参数筛选的情况下查询所有数据。例如,我在查询结果上有5个数据,因此地图上会有5个标记,ajax每两秒钟运行一次,因此当我请求一个参数时(例如,仅显示此特殊车辆),查询结果将仅显示一个,假设屏幕上仅显示一个标记,但之前的标记不会消失并保持在屏幕上。如何将标记重置为0?谁能帮帮我吗?谢谢!这是我的密码

<script type="text/javascript">
var values = [];
var map;
var markers = [];
function    initMap()
{
            var options = {
                center: {lat: -33.890542, lng: 151.274856},
                zoom: 4
            };
            map = new google.maps.Map(document.getElementById('map'), options);
            var count = 0; 
            setInterval(function() {
                getGps();
                for(var i = 0; i <= markers.length; i++){
                        markers[i].setPosition(new google.maps.LatLng(values[count][1],values[count][2]));
                        count++;
                    }
            }, 2000);
} 
function removeMarkers(){
for(var i=0; i<markers.length; i++){
    markers[i].setMap(null);
}
markers=[];
}
function getGps() {
            xmlhttp.onreadystatechange=function() {    
                if( xmlhttp.readyState==4 && xmlhttp.status==200 ) {
                    removeMarkers();
                    var res = xmlhttp.responseText; 
                    console.log(res);
                    var split1 = res.split("|");
                        if(split1[0] != "NOK"){
                            for(var i = 0; i < split1.length; i++){
                                var split2 = split1[i].split(",");
                                String(split2);
                                var holder1 = holder = [split2[0],split2[1],split2[2]];
                                values.push(holder1);;
                                var marker1 = marker = new google.maps.Marker({map: map, icon: 'images/mapvehicle.png', draggable: true});
                                markers.push(marker1);
                            }
                        }   

                }
            };
            xmlhttp.open("POST","GpsPost",true);
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.send("txtTerminal="+document.getElementById('txtTerminal').value+"&txtMerchant="+document.getElementById('txtMerchant').value+"&txtAccount="+document.getElementById('txtAccount').value);  
}

var值=[];
var映射;
var标记=[];
函数initMap()
{
变量选项={
中心:{lat:-33.890542,lng:151.274856},
缩放:4
};
map=new google.maps.map(document.getElementById('map'),选项);
var计数=0;
setInterval(函数(){
getGps();

对于(var i=0;i添加此函数并在此行后调用它。
如果(xmlhttp.readyState==4&&xmlhttp.status==200){

函数removeMarkers(){

对于(i=0;iWhy you doing var marker1=marker=new google.maps.marker({map:map,icon:'images/mapvechicle.png',draggable:true});为什么不直接将其存储在marker1中,而不是存储在markermy中?我的目标是在添加新的标记集之前删除标记,具体取决于ajax上的响应。您可以控制台吗?删除函数中的日志标记长度发布有效且格式正确的代码如何?是的,先生POST方法完成了它的工作,并给出了right响应。等等,我会试试1)你发布的代码(根本)不允许重现问题2)你试过调试代码吗?你看过你的javascript控制台吗?有没有错误?它调用你的函数吗?然后发生了什么?
function removeMarkers(){
    for(i=0; i<markers.length; i++){
        markers[i].setMap(null);
    }
    markers=[]
    values=[]
}