shpzip2geojson
v0.1.5
Published
Librería TypeScript para leer shapefiles empaquetados en un archivo ZIP, incluyendo los archivos `.shp`, `.dbf`, `.prj` y `.cpg`. Convierte estos datos a un objeto GeoJSON `FeatureCollection` listo para usar en visualizaciones con OpenLayers, Leaflet o
Readme
shpzip2geojson
Librería TypeScript para leer shapefiles empaquetados en un archivo ZIP, incluyendo los archivos .shp, .dbf, .prj y .cpg.
Convierte estos datos a un objeto GeoJSON FeatureCollection listo para usar en visualizaciones con OpenLayers, Leaflet o Mapbox.
📦 Instalación
npm install shpzip2geojson🔧 Uso básico
import { ShapefileReader } from 'shpzip2geojson';
import fs from 'fs';
async function main() {
// Lee un ZIP que contenga al menos .shp y .dbf (opcional .prj y .cpg)
const zipBuffer = fs.readFileSync('ruta/a/archivo-shapefile.zip');
const reader = new ShapefileReader();
// Devuelve un GeoJSON FeatureCollection
const geojson = await reader.read(zipBuffer);
console.log(JSON.stringify(geojson, null, 2));
}
main();🗂️ Archivos soportados
| Extensión | Descripción | Opcional |
| --------- | ------------------------------------------ | -------- |
| .shp | Geometrías en formato binario | No |
| .dbf | Atributos/tabla de propiedades | No |
| .prj | Definición del sistema de referencia (WKT) | Sí |
| .cpg | Codificación de caracteres para .dbf | Sí |
⚙️ Características
- Parsing completo del .shp para Point, PolyLine (LineString) y Polygon.
- Parsing del .dbf con soporte para codificaciones indicadas en .cpg (ej. UTF-8, ISO-8859-1).
- Unificación de geometrías y atributos en un objeto GeoJSON estándar.
- Lectura opcional del sistema de referencia en .prj.
- Solo dependencia externa: JSZip para descomprimir el ZIP.
📈 Roadmap
- Soporte MultiPolygon y MultiLineString.
- Validación y normalización avanzada de geometrías.
- API para transformar CRS usando la info de .prj.
- Ejemplos integrados con OpenLayers y otras librerías de mapas.
