如何使用phonegap更新Google地图中多个标记的位置

时间:2015-03-25 04:33:28

标签: javascript ajax cordova google-maps-api-3

我是新手,我有服务跟踪多车,我使用timmer接收位置,但我不知道如何用新值更新旧标记。我尝试使用删除所有标记然后再次添加,但它不顺利。请帮助我。英语不好的英语

var markers = [];
var marker = [];

setInterval(function () {
        for (var i = 0; i < markers.length; i++) {
            markers[i].setMap(null);
        }
        markers = [];

        $.ajax({
            type: "POST",
            contentType: "application/xml; charset=utf-8",
            url: "http://localhost:24074/WebService1.asmx/DoWork",
            data: {}, 
            dataType: "xml",
            crossDomain: true,
            processData: false,
            success: function (xml) {
                var bienSo, soHieu, soCho, vd, kd;
                $(xml).find('T_XeOnline').each(function () {
                    $(this).find("KinhDo").each(function () {
                        kd = $(this).text();
                    });
                    $(this).find("ViDo").each(function () {
                        vd = $(this).text();
                    });
                    $(this).find("BienSoXe").each(function () {
                        bienSo = $(this).text();
                    });
                    $(this).find("SoHieuXe").each(function () {
                        soHieu = $(this).text();
                    });
                    $(this).find("SoCho").each(function () {
                        soCho = $(this).text();
                    });
                    content = '<p>Biển số xe: ' + bienSo + '<br/>' +
                               'Số hiệu xe: ' + soHieu + '<br/>' +
                               'Số chỗ: ' + soCho + '<br/>' + '</p>';

                    updateMarker(vd, kd);
                });


            },
            error: function (msg, textStatus) {
                alert("Error " + msg.responseText + "" + msg.statusText + "" + XMLHttpRequest.stat);
            }
        })
    }, 5000);

 function updateMarker(lat, lng) {

    marker = new google.maps.Marker({
        position: new google.maps.LatLng(lat, lng),
        map: map,
    });

    markers.push(marker);
    addInfoWindow(marker, content);
}

1 个答案:

答案 0 :(得分:1)

没有内置功能,但您可以使用setPosition(latlng)功能更新标记的位置来构建自己的功能,并使用setTimeout(myFun, delay)等待并使其看起来像它是动画。

我创建了JSFiddle here

希望这有帮助。