lxl
2022-10-25 e5626382db6861bc6d73b33b4cfb40df3525dd5e
public/SmartEarthSDK/Workers/featurefetcherworker.js
@@ -1,5 +1,4 @@
function define(f)
{
function define(f) {
   JsonGMLParser = f();
}
importScripts('txml.js');
@@ -13,8 +12,45 @@
                                      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);