https://github.com/danieljdufour/geo-extent
Makes working with GeoSpatial Extents Easy. A simple chainable extent class.
https://github.com/danieljdufour/geo-extent
bbox extent geospatial gis javascript
Last synced: about 1 year ago
JSON representation
Makes working with GeoSpatial Extents Easy. A simple chainable extent class.
- Host: GitHub
- URL: https://github.com/danieljdufour/geo-extent
- Owner: DanielJDufour
- License: cc0-1.0
- Created: 2021-08-07T15:13:43.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-01-16T23:42:58.000Z (over 2 years ago)
- Last Synced: 2025-03-22T18:42:27.859Z (about 1 year ago)
- Topics: bbox, extent, geospatial, gis, javascript
- Language: JavaScript
- Homepage:
- Size: 219 KB
- Stars: 14
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# geo-extent
> Simple, Modern Geospatial Bounding Boxes
# features
- immutable: all functions return a new GeoExtent
- chainable: ex: `extent.reproj(3857).crop(other).toGeoJSON()`
- universal input: works with bbox arrays, xy corner points, and Leaflet bounds
- interoperability: integrates well with Leaflet, OpenLayers, and ESRI
- precise: avoids some common floating-point arithmetic issues by using [preciso](https://github.com/danieljdufour/preciso)
- typescript: includes type definitions
# install
```bash
npm install geo-extent
```
# basic usage
```js
import { GeoExtent } from 'geo-extent';
// extent of web mercator tile for x=964, y=1704, and z=12
const tile = new GeoExtent([-10605790.548624776, 3355891.2898323783, -10596006.609004272, 3365675.2294528796], { srs: 3857 });
// convert tile extent to Latitude/Longitude
const latLngBBox = tile.reproj(4326).bbox;
// latLngBBox is [-95.27343750000001, 28.84467368077178, -95.185546875, 28.921631282421277]
// extent of a Cloud-Optimized GeoTIFF (COG) in UTM Projection 32615
const cog = new GeoExtent([259537.6, 3195976.8000000003, 281663.2, 3217617.6], { srs: 32615 });
// partial is the part of the tile that overlaps the extent of the COG
const partial = tile.crop(cog);
// partial is equivalent to GeoExtent([-10605790.548624776, 3358990.12945602, -10601914.152717294, 3365675.2294528796], 3857);
```
# documentation
For more functions and examples, please consult the documentation at https://github.com/DanielJDufour/geo-extent/tree/main/docs
# used by
- [GeoRasterLayer for Leaflet](https://github.com/GeoTIFF/georaster-layer-for-leaflet)