# Random coordinates for Google Maps with Typescript

Marco Molteni

## What's for?

I'm developing a small Mobile Application using Ionic and Angular. The app uses a Map to show to the user some nearby services.

For the test phase, as you can imagine, we don't have real service to show and the user/demo can be anywhere.

To help with the test I created a simple generator of GPS coordinates based on the location of the user.

Here the package NPM and the code source GitHub The coordinates of the 3 cook's hats are generated from the library. The green point is the current position.

You can test the app yourself (alpha on google play store):

## How to use it

The library is still a work in progress but already working.

You simply need the starting coordinates (latitude/longitude) and pass the maximum number of kilometers of distance for the new coordinates.

The coordinates are created using this function:

``````import {LatLng as LatitudeLongitude} from "@molteni/coordinate-utils/dist/LatLng";

generateCoordinates() : LatitudeLongitude {
return RandomCoordinateUtils.randomCoordinateFromPositionWithExplicitLatLng(this.currentLocation.lat, this.currentLocation.lng, 0.1);
};
``````

To the current location are added/subtracted 0 to 100 meters to the longitude and latitude.

## How it works

The calculation is not extremely accurate but is enough for the Use Cases of most developers.

``````
const EARTH_RADIUS = 6378;

export function addKMToLatitude(latitude : number, kilometers : number) : number {
return latitude + (kilometers / EARTH_RADIUS) * (180 / Math.PI);
}

export function addKMToLongitude(latitude : number, longitude : number, kilometers : number) : number {
return longitude + (kilometers / EARTH_RADIUS) * (180 / Math.PI) / Math.cos(latitude * Math.PI / 180);
}

export function  getKMperDegree() {
return (2*Math.PI / 360) * EARTH_RADIUS;
}
}
``````

WebApp built by Marco using SpringBoot, Java 17, Mustache, Markdown and in Azure