Google Maps:同时运行2个脚本来显示标记

Google Maps: run 2 scripts at the same time to display markers

本文关键字:本来 脚本 显示 2个 运行 Maps Google      更新时间:2023-09-26

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

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

现在我想把这两个集合表示为同一张地图上的标记,像这样:同时从file1和file2获取P1。然后过一段时间显示P2 from file1和P2 from file2一起…等等。

这是我用来显示其中一个集合的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)。我希望我能找到帮助来同时显示这两组标记

谢谢

创建一个周期性运行的任务(setInterval)。运行时显示"下一个"标记。加载完所有数据(两组)后启动。

感谢geocodezip的回答,但我设法做到了。

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