mattia Posted May 28, 2016 Report Share Posted May 28, 2016 (edited) Hello, i try to add a flight path on live map like flightradar24 but i have a problem with the code, this is the json link with new field called "puntirotta" contains the step by step lat and lng saved during flight: http://iv.italianivo...cars/data_test I need help to add the content of the field "puntirotta" from json to a variable. SEE THE CODE BELOW /** * phpVMS - Virtual Airline Administration Software * Copyright (c) 2008 Nabeel Shahzad * For more information, visit www.phpvms.net * Forums: http://www.phpvms.net/forum * Documentation: http://www.phpvms.net/docs * * phpVMS is licenced under the following license: * Creative Commons Attribution Non-commercial Share Alike (by-nc-sa) * View license.txt in the root, or visit http://creativecommons.org/licenses/by-nc-sa/3.0/ * * @author Nabeel Shahzad * @copyright Copyright (c) 2008, Nabeel Shahzad * @link http://www.phpvms.net * @license http://creativecommons.org/licenses/by-nc-sa/3.0/ * * Rewritten for Google Maps v3 */ var flightMarkers = []; var routeMarkers = []; var flightPath = null; var depMarker = null, arrMarker = null; var info_window= null; var run_once = false; var mapOptions = { zoom: 4, center: new google.maps.LatLng(47.437047,19.248515), mapTypeId: google.maps.MapTypeId.HYBRID }; var map = new google.maps.Map(document.getElementById("acarsmap"), mapOptions); var weatherLayer = new google.maps.weather.WeatherLayer({ temperatureUnits: google.maps.weather.TemperatureUnit.CELSIUS }); weatherLayer.setMap(null); var cloudLayer = new google.maps.weather.CloudLayer(); cloudLayer.setMap(null) setWindSpeed(google.maps.weather.WindSpeedUnit.KILOMETERS_PER_HOUR) var defaultOptions = { autozoom: true, refreshTime: 25000, autorefresh: true }; function toggleClouds() { cloudLayer.setMap(cloudLayer.getMap() ? null : map); } function toggleIcons() { weatherLayer.setMap(weatherLayer.getMap() ? null : map); } function setWindSpeed(units) { weatherLayer.setOptions({'windSpeedUnits': units}); } var options = $.extend({}, defaultOptions, acars_map_defaults); // They clicked the map google.maps.event.addListener(map, 'click', function() { clearPreviousMarkers(); }); liveRefresh(); if(options.autorefresh == true) { setInterval(function () { liveRefresh(); }, options.refreshTime); } function liveRefresh() { $.ajax({ type: "GET", url: url + "/action.php/acars/data_test", dataType: "json", cache: false, success: function(data) { populateMap(data); } }); }; function populateMap(data) { clearMap(); $("#pilotlist").html(""); if (data.length == 0) { return false; } var lat, lng; var details, row, pilotlink; var bounds = new google.maps.LatLngBounds(); for (var i = 0; i < data.length; i++) { if(data[i] == null || data[i].lat == null || data[i].lng == null || data[i].lat == "" || data[i].lng == "") { continue; } lat = data[i].lat; lng = data[i].lng; if(i%2 == 0) data[i].trclass = "even"; else data[i].trclass = "odd"; // Pull ze templates! var map_row = tmpl("acars_map_row", {flight: data[i]}); var detailed_bubble = tmpl("acars_map_bubble", {flight: data[i]}); $('#pilotlist').append(map_row); var pos = new google.maps.LatLng(lat, lng); flightMarkers[flightMarkers.length] = new google.maps.Marker({ position: pos, map: map, icon: url+"/lib/images/inair/"+data[i].heading+".png", flightdetails: data[i], infowindow_content: detailed_bubble }); bounds.extend(pos); google.maps.event.addListener(flightMarkers[flightMarkers.length - 1], 'click', function() { clearPreviousMarkers(); var focus_bounds = new google.maps.LatLngBounds(); // Flight details info window info_window = new google.maps.InfoWindow({ content: this.infowindow_content, position: this.position }); info_window.open(map, this); // Add polyline, and start/end points var dep_location = new google.maps.LatLng(this.flightdetails.deplat, this.flightdetails.deplng); var arr_location = new google.maps.LatLng(this.flightdetails.arrlat, this.flightdetails.arrlng); depMarker = new google.maps.Marker({ position: dep_location, map: map, icon: depicon, title: this.flightdetails.depname, zIndex: 100 }); arrMarker = new google.maps.Marker({ position: arr_location, map: map, icon: arricon, title: this.flightdetails.arrname, zIndex: 100 }); // Now the flight path, if it exists var path = new Array(); path[path.length] = dep_location; focus_bounds.extend(dep_location); path[path.length] = arr_location; focus_bounds.extend(this.position); focus_bounds.extend(arr_location); var fromAddressLat = data[i].puntirotta(); var rotta= [ <-----------------------------------------------------------------------------HOW TO ADD THE CONTENT OF THE FIELD "PUNTIROTTA" FROM JSON TO THE VAR "rotta" ]; var something = []; for (var i=0; i < rotta.length; i++) { something.push(new google.maps.LatLng(rotta[i][0],rotta[i][1])); } flightPath = new google.maps.Polyline({ path: something, strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2 }); map.fitBounds(focus_bounds); flightPath.setMap(map); }); } // If they selected autozoom, only do the zoom first time if(options.autozoom == true && run_once == false) { map.fitBounds(bounds); run_once = true; } } function clearPreviousMarkers() { if(info_window) { info_window.close(); info_window = null; } if(depMarker != null) { depMarker.setMap(null); depMarker = null; } if(arrMarker != null) { arrMarker.setMap(null); arrMarker = null; } if(routeMarkers.length > 0) { for(var i = 0; i < routeMarkers.length; i++) { routeMarkers[i].setMap(null); } } routeMarkers.length = 0; if(flightPath != null) { flightPath.setMap(null); flightPath = null; } } function clearMap() { if(flightMarkers.length > 0) { for(var i = 0; i < flightMarkers.length; i++) { flightMarkers[i].setMap(null); } } flightMarkers.length = 0; if(routeMarkers.length > 0) { for(var i = 0; i < routeMarkers.length; i++) { routeMarkers[i].setMap(null); } } routeMarkers.length = 0; } Edited May 28, 2016 by mattia Quote Link to comment Share on other sites More sharing options...
Moderators Parkho Posted June 17, 2016 Moderators Report Share Posted June 17, 2016 (edited) Decode JSON first pulling the data and use it on the map. Edited June 17, 2016 by parkho Quote Link to comment Share on other sites More sharing options...
Yash Posted January 12, 2018 Report Share Posted January 12, 2018 Can you explain in brief? @Parkho I have a table which stores Flight positions of the ongoing flights. I know how to unserialise data but what to do next after unserialising? Thanks! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.