| 
									
										
										
										
											2023-04-06 01:33:08 +02:00
										 |  |  | import { FeatureSource } from "../FeatureSource" | 
					
						
							| 
									
										
										
										
											2023-03-28 05:13:48 +02:00
										 |  |  | import { Feature, Polygon } from "geojson" | 
					
						
							|  |  |  | import StaticFeatureSource from "./StaticFeatureSource" | 
					
						
							|  |  |  | import { GeoOperations } from "../../GeoOperations" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Returns a clipped version of the original geojson. Ways which partially intersect the given feature will be split up | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | export default class ClippedFeatureSource extends StaticFeatureSource { | 
					
						
							|  |  |  |     constructor(features: FeatureSource, clipTo: Feature<Polygon>) { | 
					
						
							|  |  |  |         super( | 
					
						
							|  |  |  |             features.features.mapD((features) => { | 
					
						
							|  |  |  |                 return [].concat(features.map((feature) => GeoOperations.clipWith(feature, clipTo))) | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |