dphelper
Version:
dphelper devtools for developers
128 lines (100 loc) • 3.82 kB
Markdown
Coordinate and geometry utilities for GPS, mapping, and calculations.
| Function | Description | Example |
|----------|-------------|---------|
| `degreesToRadians` | Convert degrees to radians | `dphelper.coords.degreesToRadians(45)` |
| `latToMeters` | Convert latitude to meters | `dphelper.coords.latToMeters([40.68, -74.04])` |
| `toVector` | Convert coordinates to 3D vector | `dphelper.coords.toVector([lat, lon, alt])` |
| `convertToDecDegrees` | Convert DMS to decimal degrees | `dphelper.coords.convertToDecDegrees(39, 5, 59, 'N')` |
| `distance` | Calculate distance between two points (Haversine) | `dphelper.coords.distance([lat1, lon1], [lat2, lon2])` |
| `polarToCartesian` | Convert polar to Cartesian coordinates | `dphelper.coords.polarToCartesian(x, y, radius, angle)` |
| `mapDegreesToPixels` | Map degrees to pixel values | `dphelper.coords.mapDegreesToPixels(deg, min, max, minPx, maxPx, pad)` |
## Description
Coordinate manipulation toolkit:
- **Unit Conversion** - Degrees, radians, meters
- **Distance Calculation** - Haversine formula for GPS
- **Coordinate Systems** - Polar, Cartesian, 3D vectors
- **Mapping** - Degrees to pixels for maps
## Usage Examples
### Degree/Radian Conversion
```javascript
// Degrees to radians
console.log(dphelper.coords.degreesToRadians(0)); // 0
console.log(dphelper.coords.degreesToRadians(90)); // 1.57...
console.log(dphelper.coords.degreesToRadians(180)); // 3.14...
console.log(dphelper.coords.degreesToRadians(360)); // 6.28...
```
```javascript
// Distance between New York and Washington DC
const nyc = [40.7128, -74.0060];
const dc = [38.9072, -77.0369];
const dist = dphelper.coords.distance(nyc, dc);
console.log(dist);
// { km: 328.54, mi: 204.18, nMi: 177.4 }
// Calculate travel distance for logistics
const locations = [
[], // NYC
[], // Philadelphia
[], // Baltimore
[] // Washington DC
];
function calculateTotalDistance(points) {
let total = 0;
for (let i = 0; i < points.length - 1; i++) {
const dist = dphelper.coords.distance(points[i], points[i + 1]);
total += dist.km;
}
return total;
}
```
```javascript
// Convert DMS to decimal degrees
// 39° 5' 59" N -> decimal
const dec = dphelper.coords.convertToDecDegrees(39, 5, 59, 'N');
console.log(dec); // 39.0997...
// With South/West (negative)
const south = dphelper.coords.convertToDecDegrees(33, 51, 30, 'S');
console.log(south); // -33.8583...
```
```javascript
// Convert GPS coordinates to 3D Earth-centered vector
const vector = dphelper.coords.toVector([40.7128, -74.0060, 0]);
console.log(vector);
// [x, y, z] in meters from Earth center
```
```javascript
// Convert polar to Cartesian for graphics
const cart = dphelper.coords.polarToCartesian(100, 100, 50, 90);
console.log(cart);
// { x: 100, y: 150 }
// Create circular motion
for (let angle = 0; angle < 360; angle += 30) {
const pos = dphelper.coords.polarToCartesian(200, 200, 80, angle);
console.log(`Angle ${angle}:`, pos);
}
```
```javascript
// Map latitude to pixel for interactive maps
const pixel = dphelper.coords.mapDegreesToPixels(
45, // Current degree
30, // Min latitude
60, // Max latitude
0, // Min pixel
500, // Max pixel
10 // Padding
);
```
- **Author:** Dario Passariello
- **Version:** 0.0.2
- **Creation Date:** 20210101
- **Last Modified:** 20260220
- **Environment:** Client-side only (browser)
---
*Automatically generated document*