pigeon-maps icon indicating copy to clipboard operation
pigeon-maps copied to clipboard

Add a JSDoc comment, describing latitude/longitude order for the `Point` and `Bounds` types

Open snelsi opened this issue 2 years ago • 0 comments

Currently, Point and Bounds types are defined like this:

export type Point = [number, number]

export interface Bounds {
  ne: [number, number]
  sw: [number, number]
}

It provides no hints about what comes first, latitude or longitude. You need to dive into the docs / examples / source code to find out that latitude is the first param and longitude is the second.

I tried to integrate supercluster with this lib, and faced a problem that it expects those params the other way, longitude first and latitude second. It creates a lot of confusion.

Thankfully, I think there is a super easy solution for this. Just add a JSDoc comment to the Point type definition, describing the order:

/** @description `[latitude, longitude]` */
export type Point = [number, number]

/** @description `{ ne: [latitude, longitude], sw: [latitude, longitude] }` */
export interface Bounds {
  ne: Point
  sw: Point
}

Your IDE can show those comments as a useful tooltip on hover image

snelsi avatar Oct 10 '23 09:10 snelsi