# See: http://wiki.flightgear.org/MapStructure # Class things: var name = 'SPD-profile'; var parents = [canvas.SymbolLayer.Controller]; var __self__ = caller(0)[0]; var _options = { # default configuration options alts: [100,140,250,260,'wp'] }; canvas.SymbolLayer.Controller.add(name, __self__); canvas.SymbolLayer.add(name, { parents: [MultiSymbolLayer], type: name, # Symbol type df_controller: __self__, # controller to use by default -- this one df_options: _options }); var new = func(layer) { var m = { parents: [__self__], layer: layer, #map: layer.map, listeners: [], }; layer.searcher._equals = func(a,b) a.getName() == b.getName(); #append(m.listeners, setlistener(layer.options.fplan_active, func m.layer.update() )); #m.addVisibilityListener(); return m; }; var del = func() { foreach (var l; me.listeners) removelistener(l); }; var searchCmd = func { var results = []; var symNode = props.globals.getNode(me.layer.options.spd_node); if (symNode != nil) foreach (var alt; me.layer.options.alts) { t = 'spd-change-point' ~ '-' ~ alt; #print('SPD-Controller, search for '~t); var n = symNode.getNode(t); if (n != nil and n.getValue('longitude-deg') != nil){ #print('SPD-Controller -> Append'); append(results, n); } } return results; }