mariusandra / pigeon-maps

ReactJS Maps without external dependencies
https://pigeon-maps.js.org/
MIT License
3.45k stars 142 forks source link

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

Open snelsi opened 1 year ago

snelsi commented 1 year ago

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