import { CesiumService } from '../cesium/cesium.service';
import * as geodesy from 'geodesy';
import { hemisphere } from 'geodesy';
import { Cartesian3 } from '../../models/cartesian3';
/**
* Given different types of coordinates, we provide you a service converting those types to the most common other types.
* We are using the geodesy implementation of UTM conversion. see: https://github.com/chrisveness/geodesy.
*
* @example
* import { Component, OnInit } from '@angular/core';
* import { CoordinateConverter } from 'angular2-cesium';
*
* @Component({
* selector:'my-component',
* template:'
{{showCartographic}}
',
* providers:[CoordinateConverter]
* })
* export class MyComponent implements OnInit {
* showCartographic;
*
* constructor(private coordinateConverter:CoordinateConverter){
* }
*
* ngOnInit(){
* this.showCartographic = this.coordinateConverter.degreesToCartographic(5, 5, 5);
* }
* }
*
*/
export declare class CoordinateConverter {
private cesiumService?;
constructor(cesiumService?: CesiumService);
static cartesian3ToLatLon(cartesian3: Cartesian3, ellipsoid?: any): {
lon: number;
lat: number;
height: number;
};
screenToCartesian3(screenPos: {
x: number;
y: number;
}, addMapCanvasBoundsToPos?: boolean): any;
screenToCartographic(screenPos: {
x: number;
y: number;
}, ellipsoid?: any): any;
cartesian3ToCartographic(cartesian: Cartesian3, ellipsoid?: any): any;
degreesToCartographic(longitude: number, latitude: number, height?: number): any;
radiansToCartographic(longitude: number, latitude: number, height?: number): any;
degreesToUTM(longitude: number, latitude: number): geodesy.Utm;
UTMToDegrees(zone: number, hemisphereType: hemisphere, easting: number, northing: number): {
longitude: number;
latitude: number;
height: any;
};
private geodesyToCesiumObject;
/**
* middle point between two points
* @param first (latitude,longitude) in radians
* @param second (latitude,longitude) in radians
*/
midPointToCartesian3(first: {
latitude: number;
longitude: number;
}, second: {
latitude: number;
longitude: number;
}): any;
middlePointByScreen(position0: Cartesian3, position1: Cartesian3): Cartesian3;
/**
* initial bearing between two points
*
* * @return bearing in degrees
* @param first - {latitude,longitude} in radians
* @param second - {latitude,longitude} in radians
*/
bearingTo(first: {
latitude: number;
longitude: number;
}, second: {
latitude: number;
longitude: number;
}): number;
/**
* initial bearing between two points
*
* @return bearing in degrees
*/
bearingToCartesian(firstCartesian3: Cartesian3, secondCartesian3: Cartesian3): number;
}