ng2-haversine

An Angular 2 library to calculate the distance between a pair of coordinates using the Haversine formula.
Getting started
Installng2-haversine
using npm
within your Angular 2 app directory:$ npm install ng2-haversine --save
Once the package is installed, set the provider for
HaversineService
in your AppModule
:import { HaversineService } from "ng2-haversine";
@NgModule({
...
providers: [HaversineService]
...
})
export class AppModule { }
Now you're ready to use
ng2-haversine
!How to
You can useHaversineService
from a Service or from a Component: just inject it as a dependency. Remember to import GeoCoord
as well:import { HaversineService, GeoCoord } from "ng2-haversine";
@Component({ ... })
export class MyComponent {
constructor(private _haversineService: HaversineService) { }
}
Then, use one of the provided functions in
HaversineService
to calcule the distance between two points:tryHaversine(): void {
let madrid: GeoCoord = {
latitude: 40.416775,
longitude: -3.703790
};
let bilbao: GeoCoord = {
latitude: 43.262985,
longitude: -2.935013
};
let meters = this._haversineService.getDistanceInMeters(madrid, bilbao);
let kilometers = this._haversineService.getDistanceInKilometers(madrid, bilbao);
let miles = this._haversineService.getDistanceInMiles(madrid, bilbao);
console.log(`
The distance between Madrid and Bilbao is:
- ${meters} meters
- ${kilometers} kilometers
- ${miles} miles
`);
}
As you have guessed:
getDistanceInMeters(coord1: GeoCoord, coord2: GeoCoord): number
calculates a distance in meters.getDistanceInKilometers(coord1: GeoCoord, coord2: GeoCoord): number
calculates a distance in kilometers.getDistanceInMiles(coord1: GeoCoord, coord2: GeoCoord): number
calculates a distance in miles.GeoCoord
is an interface withlatitude: number
andlongitude: number
.
Using SystemJS
To loadng2-haversine
using SystemJS is as simple as this. Open your systemjs.config.js
file and set paths
, map
and packages
properties this way:(function (global) {
System.config({
paths: {
"npm:": "node_modules/"
},
map: {
...
"ng2-haversine": "npm:ng2-haversine"
},
packages: {
...
"ng2-haversine": {
main: "./index.js",
defaultExtension: "js"
}
}
});
})(this);
That's it :)