function define(f) { JsonGMLParser = f(); } importScripts('txml.js'); importScripts('JsonGMLParser.js'); self.addEventListener('message', function (e) { var gmlParser = new JsonGMLParser(true /*extractAttributes */, true /*xy */, undefined /*gmlnsm*/, undefined /*wfsnsm*/, undefined /*featureName*/, e.data.geometryFieldName); var data = e.data; var json = tXml(data.text, {simplify:true}); var features = gmlParser.read(json); delete data.text; data.features = features; postMessage(data); /* load('data.json', function(xhr) { var result = xhr.responseText; var features = gmlParser.read(data.document); postMessage({id: data.id, features: features}); }); */ }); /* //simple XHR request in pure JavaScript function load(url, callback) { var xhr; if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest(); else { var versions = ["MSXML2.XmlHttp.5.0", "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.2.0", "Microsoft.XmlHttp"] for(var i = 0, len = versions.length; i < len; i++) { try { xhr = new ActiveXObject(versions[i]); break; } catch(e){} } // end for } xhr.onreadystatechange = ensureReadiness; function ensureReadiness() { if(xhr.readyState < 4) { return; } if(xhr.status !== 200) { return; } // all is well if(xhr.readyState === 4) { callback(xhr); } } xhr.open('GET', url, true); xhr.send(''); } */