import { Observable } from 'rxjs' ; import { FeatureCollection , GeometryObject , Point } from 'geojson' ; import { CommunicatorEntity } from '../communicator-service/communicator.entity' ; export abstract class ProjectionService { abstract projectAccurately ( point , mapObject ) ; abstract projectApproximately ( point , mapObject ) ; abstract projectApproximatelyFromProjection ( point , sourceProjection , destProjection ) ; abstract projectCollectionAccurately < T = any > ( features , mapObject ) ; abstract projectCollectionApproximately < T = any > ( features , mapObject ) ; abstract projectAccuratelyToImage ( point , mapObject ) ; abstract projectApproximatelyToImage ( point , mapObject ) ; abstract projectCollectionAccuratelyToImage < T = any > ( featureCollection , mapObject ) ; abstract projectCollectionApproximatelyToImage < T = any > ( featureCollection , mapObject ) ; abstract getProjectionProperties ( communicator , annotationLayer , feature , overlay ) ; }