12345678910111213141516171819202122232425262728293031323334353637 |
- /**
- * GeoJSONLoader.js
- *
- * @author realor
- */
- import { GISLoader } from './GISLoader.js'
- import { Solid } from '../../core/Solid.js'
- import { BooleanOperator } from '../../builders/BooleanOperator.js'
- import * as THREE from '../../lib/three.module.js'
- class GeoJSONLoader extends GISLoader {
- constructor(manager) {
- super(manager, 'application/json')
- }
- parse(data) {
- const options = this.options
- const featureGroup = new THREE.Group()
- featureGroup.name = this.options.name || 'layer'
- let jsonObject = JSON.parse(data)
- let features = jsonObject.features
- for (let f = 0; f < features.length; f++) {
- let feature = features[f]
- let properties = feature.properties
- let geometry = feature.geometry
- if (geometry) {
- this.createObject(geometry.type, feature.id || 'feature', geometry.coordinates, properties, featureGroup)
- } else {
- this.createNonVisibleObject(feature.id || 'feature_nv', properties, featureGroup)
- }
- }
- return featureGroup
- }
- }
- export { GeoJSONLoader }
|