geo-position.ts 🌎
Library for working with GeoPosition fot TypeScript
### Install
`yarn add geo-position.ts`
#### Run test
`yarn test` or `yarn test-nya` and for reports `yarn report-test`
![image](https://user-images.githubusercontent.com/13326808/41824817-97fd8e32-781f-11e8-8d0b-4f16d1aa5174.png)
### Usage
#### Create GeoPosition from coordinates
```TypeScript
import { GeoPosition } from 'geo-position.ts';
/* ... */
new GeoPosition(71.317941, 55.691416);
71.317941 //- Latitude (λ)
55.691416 //- Longitude (φ)
```
#### Distance:
```TypeScript
let xPoint = new GeoPosition(71.317941, 55.691416);
let yPoint = new GeoPosition(71.500873, 55.807184);
+xPoint.Distance(yPoint).toFixed(0) // -> 20844 meters
```
#### Zero check
```TypeScript
new GeoPosition(0, 0).IsZero() // -> true
new GeoPosition(71.317941, 55.691416) // -> false
GeoPosition.Zero.IsZero() // -> true
```
#### Validate Coordinates
```TypeScript
GeoPosition.IsValidGpsCoordinate(71.317941, 55.691416) // true
GeoPosition.IsValidGpsCoordinate(271.317941, 255.691416) // false
```
#### Parse Coordinates
```TypeScript
GeoPosition.GetGpsPosition("N71.317941", "E55.691416"); // -> [71.317941, 55.691416]
GeoPosition.GetGpsPosition("S71,317941", "W55,691416"); // -> [-71.317941, -55.691416]
```
#### Is Inside Area
(this area array coordinates)
![image](https://user-images.githubusercontent.com/13326808/41824743-458f1ef0-781e-11e8-9ca3-f3396bb26ad5.png)
```TypeScript
let area = [
new GeoPosition(71.51834193441157, 55.116358997070286),
new GeoPosition(71.44676509856431, 54.92684483691404),
new GeoPosition(71.33845776024275, 55.123225452148404),
new GeoPosition(71.36701875276431, 55.43084263964841),
new GeoPosition(71.45113719694054, 55.575038196289),
new GeoPosition(71.5065763194486, 55.40749669238277),
new GeoPosition(71.51834193441157, 55.116358997070286)
]
new GeoPosition(71.436275, 55.220661).IsInsideArea(area) // true
new GeoPosition(0, 0).IsInsideArea(area) // false
```
#### SectionCenterPosition
```TypeScript
let pos = new GeoPosition(71.436706, 55.268108);
let pos2 = new GeoPosition(71.473202, 55.857764);
GeoPosition.SectionCenterPosition(pos, pos2) // GeoPosition(71.454954, 55.562936)
```
![image](https://user-images.githubusercontent.com/13326808/41824788-1dd79602-781f-11e8-9fc2-3f8f8f1a4fde.png)
#### DistanceToSection
```TypeScript
let start = new GeoPosition(71.436706, 55.268108);
let end = new GeoPosition(71.473202, 55.857764);
let point = new GeoPosition(71.504361, 55.511926);
GeoPosition.SectionCenterPosition(point, start, end) // 5807 meters
```