Jump to content
mattia

Flight path on google maps

Recommended Posts

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 by mattia

Share this post


Link to post
Share on other sites

Decode JSON first pulling the data and use it on the map.

Edited by parkho

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×