travelord
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

travelord

Travelord is a simple library written in Typescript that provides functions for ranking points of interest along a path of travel. It offers both a library interface for programmatic use and a command-line interface (CLI) for easy integration into your projects.

This library is almost entirely written using ChatGPT. including this README!

Features

  • Rank points along a bearing line based on their distance and bearing difference.
  • Filter points based on a bearing difference threshold.
  • Sort points based on distance and bearing difference.
  • access to underlying functions

Why?

I wanted to plan my travel by train across europe, hitting up as many slacklining/highlining communities along the way using data from SlackMap: https://slackmap.com/communities

This tool is useful for anyone who needs to plan a route given a list of POIs that they would like to visit along the way.

Documentation

This library is super simple, all the functions contain JSDoc comments and are well typed.

Installation

To install Travelord, use pnpm, npm or yarn:

npm install travelord

CLI Usage

travelord --input data.json --output output.json

CLI Options

--start: The start coordinate in the format lat,lng.
--end: The end coordinate in the format lat,lng.
--input: The input JSON file containing the array of points.
--output: The output JSON file to save the sorted points (specify the input file to overwrite). If not provided, the output goes to STDOUT.

Use travelord --help to get a full description

Library Usage

Here's an example of how to use My Package in your JavaScript/TypeScript code:

import { rankPointsAlongBearing } from "travelord";

// Define your start and end coordinates
const start = { lat: 0, lng: 0 };
const end = { lat: 10, lng: 10 };

// Define an array of points
const points = [
    { lat: 2, lng: 2 },
    { lat: 5, lng: 5 },
    { lat: 8, lng: 8 },
];

// Rank the points along the bearing line
const rankedPoints = rankPointsAlongBearing(start, end, points);

console.log(rankedPoints);

Contributing

Contributions are welcome! Please feel free to submit a PR or message me if you need help

Possible improvements

  • fix lint precommit hook

  • implement automated tagged releases and publish to npm

  • use a dictionary of coordinates and/or google api to accept city names instead of coordinates

  • improve the ranking algorithm or give it more options

  • add support for an iterative ranking process

  • validate the CLI input data

  • add csv support

  • add examples in docs

License

This project is licensed under the MIT License.

Package Sidebar

Install

npm i travelord

Weekly Downloads

0

Version

0.1.0

License

MIT

Unpacked Size

59.6 kB

Total Files

18

Last publish

Collaborators

  • dragosrotaru