geohash-kit 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -254,3 +254,8 @@ See [llms.txt](./llms.txt) for a concise API summary, or [llms-full.txt](./llms-
254
254
  ## Support
255
255
 
256
256
  For issues and feature requests, see [GitHub Issues](https://github.com/TheCryptoDonkey/geohash-kit/issues).
257
+
258
+ If you find geohash-kit useful, consider sending a tip:
259
+
260
+ - **Lightning:** `thedonkey@strike.me`
261
+ - **Nostr zaps:** `npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2`
package/dist/core.d.ts CHANGED
@@ -32,6 +32,24 @@ export declare function neighbours(hash: string): Record<Direction, string>;
32
32
  export declare function distanceFromCoords(lat1: number, lon1: number, lat2: number, lon2: number): number;
33
33
  /** Haversine distance in metres between centres of two geohash cells. */
34
34
  export declare function distance(hashA: string, hashB: string): number;
35
+ /** Geographic midpoint between two coordinate pairs (spherical interpolation). */
36
+ export declare function midpointFromCoords(lat1: number, lon1: number, lat2: number, lon2: number): {
37
+ lat: number;
38
+ lon: number;
39
+ };
40
+ /** Geographic centroid of N coordinate pairs (spherical vector mean). */
41
+ export declare function midpointFromCoordsMulti(points: ReadonlyArray<{
42
+ lat: number;
43
+ lon: number;
44
+ }>): {
45
+ lat: number;
46
+ lon: number;
47
+ };
48
+ /** Geographic midpoint between centres of two geohash cells. */
49
+ export declare function midpoint(hashA: string, hashB: string): {
50
+ lat: number;
51
+ lon: number;
52
+ };
35
53
  /** Optimal geohash precision for a given search radius in metres. */
36
54
  export declare function radiusToPrecision(metres: number): number;
37
55
  /** Approximate cell radius in metres for a given precision level. */
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;AAczE,mFAAmF;AACnF,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,MAAM,CA2BtE;AAED,+DAA+D;AAC/D,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAWtG;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAoBlD;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAG/C;AAID,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAEtE;AAID,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CA0BpE;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAWlE;AAMD,iEAAiE;AACjE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAWjG;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI7D;AAkBD,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI3D"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;AAczE,mFAAmF;AACnF,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,MAAM,CA2BtE;AAED,+DAA+D;AAC/D,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAWtG;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAoBlD;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAG/C;AAID,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAEtE;AAID,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CA0BpE;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAWlE;AAMD,iEAAiE;AACjE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAWjG;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI7D;AAID,kFAAkF;AAClF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GACrD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CA8B9B;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAClD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CA4B9B;AAED,gEAAgE;AAChE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAInF;AAkBD,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI3D"}
package/dist/core.js CHANGED
@@ -179,6 +179,64 @@ export function distance(hashA, hashB) {
179
179
  const b = decode(hashB);
180
180
  return distanceFromCoords(a.lat, a.lon, b.lat, b.lon);
181
181
  }
182
+ // --- Midpoint ---
183
+ /** Geographic midpoint between two coordinate pairs (spherical interpolation). */
184
+ export function midpointFromCoords(lat1, lon1, lat2, lon2) {
185
+ if (!Number.isFinite(lat1) || !Number.isFinite(lon1) || !Number.isFinite(lat2) || !Number.isFinite(lon2)) {
186
+ throw new RangeError('All coordinate arguments must be finite numbers');
187
+ }
188
+ const toRad = (deg) => (deg * Math.PI) / 180;
189
+ const toDeg = (rad) => (rad * 180) / Math.PI;
190
+ const φ1 = toRad(lat1);
191
+ const λ1 = toRad(lon1);
192
+ const φ2 = toRad(lat2);
193
+ const λ2 = toRad(lon2);
194
+ // Convert to Cartesian, average, convert back
195
+ const x1 = Math.cos(φ1) * Math.cos(λ1);
196
+ const y1 = Math.cos(φ1) * Math.sin(λ1);
197
+ const z1 = Math.sin(φ1);
198
+ const x2 = Math.cos(φ2) * Math.cos(λ2);
199
+ const y2 = Math.cos(φ2) * Math.sin(λ2);
200
+ const z2 = Math.sin(φ2);
201
+ const x = (x1 + x2) / 2;
202
+ const y = (y1 + y2) / 2;
203
+ const z = (z1 + z2) / 2;
204
+ const lon = toDeg(Math.atan2(y, x));
205
+ const hyp = Math.sqrt(x * x + y * y);
206
+ const lat = toDeg(Math.atan2(z, hyp));
207
+ return { lat, lon };
208
+ }
209
+ /** Geographic centroid of N coordinate pairs (spherical vector mean). */
210
+ export function midpointFromCoordsMulti(points) {
211
+ if (points.length === 0)
212
+ throw new RangeError('Points array must not be empty');
213
+ const toRad = (deg) => (deg * Math.PI) / 180;
214
+ const toDeg = (rad) => (rad * 180) / Math.PI;
215
+ let x = 0, y = 0, z = 0;
216
+ for (const p of points) {
217
+ if (!Number.isFinite(p.lat) || !Number.isFinite(p.lon)) {
218
+ throw new RangeError('All coordinate values must be finite numbers');
219
+ }
220
+ const φ = toRad(p.lat);
221
+ const λ = toRad(p.lon);
222
+ x += Math.cos(φ) * Math.cos(λ);
223
+ y += Math.cos(φ) * Math.sin(λ);
224
+ z += Math.sin(φ);
225
+ }
226
+ x /= points.length;
227
+ y /= points.length;
228
+ z /= points.length;
229
+ const lon = toDeg(Math.atan2(y, x));
230
+ const hyp = Math.sqrt(x * x + y * y);
231
+ const lat = toDeg(Math.atan2(z, hyp));
232
+ return { lat, lon };
233
+ }
234
+ /** Geographic midpoint between centres of two geohash cells. */
235
+ export function midpoint(hashA, hashB) {
236
+ const a = decode(hashA);
237
+ const b = decode(hashB);
238
+ return midpointFromCoords(a.lat, a.lon, b.lat, b.lon);
239
+ }
182
240
  // --- Precision ↔ Radius ---
183
241
  // Approximate cell half-diagonal in metres at each precision level (equator).
184
242
  const PRECISION_RADIUS_M = [
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { encode, decode, bounds, children, contains, matchesAny, neighbour, neighbours, distance, distanceFromCoords, radiusToPrecision, precisionToRadius, type GeohashBounds, type Direction, } from './core.js';
1
+ export { encode, decode, bounds, children, contains, matchesAny, neighbour, neighbours, distance, distanceFromCoords, midpoint, midpointFromCoords, midpointFromCoordsMulti, radiusToPrecision, precisionToRadius, type GeohashBounds, type Direction, } from './core.js';
2
2
  export { pointInPolygon, boundsOverlapsPolygon, boundsFullyInsidePolygon, polygonToGeohashes, geohashesToGeoJSON, geohashesToConvexHull, deduplicateGeohashes, type CoverageOptions, type DeduplicateOptions, type GeohashGeoJSON, type PolygonInput, type GeoJSONPolygon, type GeoJSONMultiPolygon, } from './coverage.js';
3
3
  export { createGTagLadder, createGTagFilter, createGTagFilterFromGeohashes, expandRings, nearbyFilter, parseGTags, bestGeohash, } from './nostr.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EACtD,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAClE,KAAK,aAAa,EAAE,KAAK,SAAS,GACnC,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,cAAc,EAAE,qBAAqB,EAAE,wBAAwB,EAC/D,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAC7D,oBAAoB,EACpB,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAClE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,GACjE,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,gBAAgB,EAAE,gBAAgB,EAAE,6BAA6B,EACjE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,GACnD,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EACtD,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,kBAAkB,EAAE,uBAAuB,EACrD,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,aAAa,EAAE,KAAK,SAAS,GACnC,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,cAAc,EAAE,qBAAqB,EAAE,wBAAwB,EAC/D,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAC7D,oBAAoB,EACpB,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAClE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,GACjE,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,gBAAgB,EAAE,gBAAgB,EAAE,6BAA6B,EACjE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,GACnD,MAAM,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { encode, decode, bounds, children, contains, matchesAny, neighbour, neighbours, distance, distanceFromCoords, radiusToPrecision, precisionToRadius, } from './core.js';
1
+ export { encode, decode, bounds, children, contains, matchesAny, neighbour, neighbours, distance, distanceFromCoords, midpoint, midpointFromCoords, midpointFromCoordsMulti, radiusToPrecision, precisionToRadius, } from './core.js';
2
2
  export { pointInPolygon, boundsOverlapsPolygon, boundsFullyInsidePolygon, polygonToGeohashes, geohashesToGeoJSON, geohashesToConvexHull, deduplicateGeohashes, } from './coverage.js';
3
3
  export { createGTagLadder, createGTagFilter, createGTagFilterFromGeohashes, expandRings, nearbyFilter, parseGTags, bestGeohash, } from './nostr.js';
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EACtD,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,GAEnE,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,cAAc,EAAE,qBAAqB,EAAE,wBAAwB,EAC/D,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAC7D,oBAAoB,GAGrB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,gBAAgB,EAAE,gBAAgB,EAAE,6BAA6B,EACjE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,GACnD,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EACtD,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,kBAAkB,EAAE,uBAAuB,EACrD,iBAAiB,EAAE,iBAAiB,GAErC,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,cAAc,EAAE,qBAAqB,EAAE,wBAAwB,EAC/D,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAC7D,oBAAoB,GAGrB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,gBAAgB,EAAE,gBAAgB,EAAE,6BAA6B,EACjE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,GACnD,MAAM,YAAY,CAAA"}
package/llms-full.txt CHANGED
@@ -5,6 +5,7 @@
5
5
  Zero dependencies. ESM-only. TypeScript native.
6
6
 
7
7
  Repository: https://github.com/TheCryptoDonkey/geohash-kit
8
+ Interactive demo: https://thecryptodonkey.github.io/geohash-kit/
8
9
  Licence: MIT
9
10
 
10
11
  ## Install
package/llms.txt CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  > Modern TypeScript geohash toolkit — encode, decode, cover polygons, and build Nostr filters.
4
4
 
5
+ Interactive demo: https://thecryptodonkey.github.io/geohash-kit/
6
+
5
7
  Zero dependencies. ESM-only. Three subpath exports.
6
8
 
7
9
  ## Install
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geohash-kit",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Modern TypeScript geohash toolkit — encode, decode, cover polygons, and build Nostr filters",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -46,11 +46,13 @@
46
46
  ],
47
47
  "author": "TheCryptoDonkey",
48
48
  "license": "MIT",
49
+ "homepage": "https://thecryptodonkey.github.io/geohash-kit/",
49
50
  "repository": {
50
51
  "type": "git",
51
52
  "url": "https://github.com/TheCryptoDonkey/geohash-kit.git"
52
53
  },
53
54
  "devDependencies": {
55
+ "@semantic-release/changelog": "^6.0.3",
54
56
  "@semantic-release/git": "^10.0.1",
55
57
  "@semantic-release/github": "^12.0.6",
56
58
  "@semantic-release/npm": "^13.1.4",