Google Maps:同时运行2个脚本来显示标记
Google Maps: run 2 scripts at the same time to display markers
我正在开发这个小工具,它读取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个条目。
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 不显示带有本地json文件数据的谷歌地图脚本
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 从远程脚本获取用户IP
- 如何根据时间运行不同的脚本
- 如何将字符串值从php页面发送到java脚本页面
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 当脚本由system.js加载时,如何要求('electron')
- HTML标记在脚本标记中工作
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 显示时间的脚本
- ng应用程序使脚本无限运行
- 如何在运行时在angular 2中加载外部js脚本
- Google Adsense多次加载脚本
- FF视图源|脚本高亮显示为红色