移动/更新基于JSON的标记
问题描述:
下面是我的网站上的jQuery代码。 ADS-B Recviver正在上传现场.JSON文件,提供飞机的经纬度信息。我已将它们制作成标记,但它们只会在刷新页面时更新。我试过设定的时间间隔,并做了大量的研究,但没有太多。 任何想法,我可以做什么?也许我没有把Set Interval放在正确的地方。移动/更新基于JSON的标记
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(-36.363, 175.044),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var infoWindow = new google.maps.InfoWindow();
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
$.getJSON('https://crossorigin.me/http://radar1.ddns.net:3080/data/aircraft.json', function(data){
$.each(data.aircraft, function(i, value) {
var myLatlng = new google.maps.LatLng(value.lat, value.lon, value.flight, value.altitude);
var marker = new google.maps.Marker({
position: myLatlng,
icon: 'airplane.jpg',
map: map,
title: "Callsign Altitude "+value.flight+value.altitude
});
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-37.008625, 174.785047),
icon: 'airport.png',
map: map,
});
});
});
}
答
嘿Kieran尝试下面的代码,它会刷新每20秒后的地图。
<script type="text/javascript">
var timerID = null;
var map;
var timerRunning = false;
var delay = 20000; // refresh every 20 seconds
var zoomToExtents = 0;
var openedInfoWindow = null;
// Initialize Timer
function initializeTimer() {
initialize();
StopTheClock();
StartTheTimer();
}
function StopTheClock() {
if (timerRunning)
clearTimeout(timerID)
timerRunning = false;
}
function StartTracking() {
StartTheTimer();
}
function StartTheTimer() {
// alert('hi');
readData();
timerRunning = true;
timerID = self.setTimeout("StartTracking()", delay)
}
google.maps.event.addDomListener(window, 'load', initializeTimer);
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(-36.363, 175.044),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var infoWindow = new google.maps.InfoWindow();
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
}
function readData() {
$.getJSON('https://crossorigin.me/http://radar1.ddns.net:3080/data/aircraft.json', function (data) {
$.each(data.aircraft, function (i, value) {
var myLatlng = new google.maps.LatLng(value.lat, value.lon, value.flight, value.altitude);
var Latlngs = new google.maps.LatLng(-37.008625, 174.785047);
map.setCenter(Latlngs);
var marker = new google.maps.Marker({
position: myLatlng,
icon: 'airplane.jpg',
map: map,
title: "Callsign Altitude " + value.flight + value.altitude
});
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-37.008625, 174.785047),
icon: 'airplane.jpg',
map: map,
});
});
});
}
磨憨您好,感谢它的作品!只是一个小问题,旧的职位仍然显示出任何方式来消除这一点,只是显示ifs历史背后的线?或只是一个图标。 –