bytev-charts
Version:
基于echarts和JavaScript及ES6封装的一个可以直接调用的图表组件库,内置主题设计,简单快捷,且支持用户自定义配置; npm 安装方式: npm install bytev-charts 若启动提示还需额外install插件,则运行 npm install @babel/runtime-corejs2 即可;
91 lines (79 loc) • 3 kB
JavaScript
import "core-js/modules/es.array.iterator.js";
import "core-js/modules/es.object.to-string.js";
import "core-js/modules/es.string.iterator.js";
import "core-js/modules/web.dom-collections.iterator.js";
import "core-js/modules/web.url.js";
import "core-js/modules/web.url-search-params.js";
import "core-js/modules/es.regexp.exec.js";
import "core-js/modules/es.string.split.js";
import _Object$assign from "@babel/runtime-corejs2/core-js/object/assign";
import _Object$create from "@babel/runtime-corejs2/core-js/object/create";
console.warn("THREE.KMZLoader: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/#manual/en/introduction/Installation.");
THREE.KMZLoader = function (manager) {
THREE.Loader.call(this, manager);
};
THREE.KMZLoader.prototype = _Object$assign(_Object$create(THREE.Loader.prototype), {
constructor: THREE.KMZLoader,
load: function load(url, onLoad, onProgress, onError) {
var scope = this;
var loader = new THREE.FileLoader(scope.manager);
loader.setPath(scope.path);
loader.setResponseType('arraybuffer');
loader.setRequestHeader(scope.requestHeader);
loader.load(url, function (text) {
try {
onLoad(scope.parse(text));
} catch (e) {
if (onError) {
onError(e);
} else {
console.error(e);
}
scope.manager.itemError(url);
}
}, onProgress, onError);
},
parse: function parse(data) {
function findFile(url) {
for (var path in zip.files) {
if (path.substr(-url.length) === url) {
return zip.files[path];
}
}
}
var manager = new THREE.LoadingManager();
manager.setURLModifier(function (url) {
var image = findFile(url);
if (image) {
console.log('Loading', url);
var blob = new Blob([image.asArrayBuffer()], {
type: 'application/octet-stream'
});
return URL.createObjectURL(blob);
}
return url;
}); //
var zip = new JSZip(data);
if (zip.files['doc.kml']) {
var xml = new DOMParser().parseFromString(zip.files['doc.kml'].asText(), 'application/xml');
var model = xml.querySelector('Placemark Model Link href');
if (model) {
var loader = new THREE.ColladaLoader(manager);
return loader.parse(zip.files[model.textContent].asText());
}
} else {
console.warn('KMZLoader: Missing doc.kml file.');
for (var path in zip.files) {
var extension = path.split('.').pop().toLowerCase();
if (extension === 'dae') {
var loader = new THREE.ColladaLoader(manager);
return loader.parse(zip.files[path].asText());
}
}
}
console.error('KMZLoader: Couldn\'t find .dae file.');
return {
scene: new THREE.Group()
};
}
});