| | |
| | | function define(f) |
| | | { |
| | | 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 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); |
| | | var json, features; |
| | | if (data.format === 'JSON') { |
| | | json = JSON.parse(data.text); |
| | | features = json.features; |
| | | features.forEach(feature => { |
| | | feature.positions = []; |
| | | feature.geometry.coordinates.forEach(coordinate => { |
| | | if (Array.isArray(coordinate)) { |
| | | let positions = []; |
| | | coordinate.forEach(item => { |
| | | if (Array.isArray(item[0])) { |
| | | let pArr = []; |
| | | item.forEach(p => { |
| | | pArr.push(p[0], p[1], p[2]) |
| | | }) |
| | | positions.push(pArr); |
| | | } else { |
| | | positions.push(item[0], item[1], item[2]) |
| | | } |
| | | }); |
| | | feature.positions.push(positions); |
| | | }else{ |
| | | feature.positions.push(coordinate) |
| | | } |
| | | }) |
| | | feature.attributes = feature.properties; |
| | | feature.fid = feature.id; |
| | | feature.geometryType = feature.geometry.type.toLocaleLowerCase(); |
| | | feature.bounds = undefined; |
| | | delete feature.geometry; |
| | | delete feature.id; |
| | | delete feature.properties; |
| | | delete feature.geometry_name; |
| | | delete feature.type; |
| | | }) |
| | | } else { |
| | | json = tXml(data.text, { simplify: true }); |
| | | features = gmlParser.read(json); |
| | | } |
| | | delete data.text; |
| | | data.features = features; |
| | | postMessage(data); |
| | |
| | | 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"] |
| | | "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 { |