Google地图:同时运行2个脚本以显示标记

时间:2014-08-21 14:09:02

标签: javascript google-maps google-maps-api-3 gps

我正在开发这个小工具,它可以读取2个XML文件,这些文件包含序列中某些位置的信息(id,interval,lat,lng)。

我应用了一些算法后,第一个文件包含真实的GPS数据,第二个文件包含经过校正的GPS数据。

现在我想在同一个地图上将这两个集合表示为标记,如下所示: 来自file1的P1和来自file2的P1同时..然后在一段时间后从file1显示P2和从file2一起显示P2 ......依此类推。

这是我编写的用于显示其中一组的Javascript代码:

<script type="text/javascript">

var id = null;
var timestamp = null;
var lat = null;
var lng = null;

var locations = new Array();    

loadXMLFile();

function loadXMLFile()
{
    $.ajax({
        type: "GET",
        url: 'data2.xml' ,
        dataType: "xml",
        success: parseXML,
        error : function(ts) { alert("Error: " + ts.responseStatus) }
    });
}

function parseXML(xml)
{
    $(xml).find("marker").each(function(){
        id = $(this).find('id').text();
        timestamp = $(this).find('ts').text();
        lat = $(this).find('lat').text();
        lng = $(this).find('lng').text();

        locations.push([parseFloat(lat),parseFloat(lng)]);

    });
    marker(0);
}

function marker(i){
if (i > locations.length) return;
    var marker;

    marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][0], locations[i][1]),
        map: map
    });

    setTimeout("marker("+(i+1)+")", 500);
}

我读到Javascript不支持多线程..我也尝试使用网络工作者,但它不起作用(或者我无法使其工作,因为我是Javascript和HTML的新手)。 我希望我能找到帮助,同时显示2套标记。

由于

2 个答案:

答案 0 :(得分:0)

创建定期运行的任务(setInterval)。运行时显示“下一个”标记。在加载所有数据(两组)后开始运行。

答案 1 :(得分:0)

感谢geocodezip的回答,但我设法以某种方式做到了..

我读了2个XML文件,将每个文件存储在一个数组中,然后将2个数组合并到一个数组中,然后在marker()函数中,我从组合数组中一次显示2个条目。