0.1.5 • Published 10 months ago

geoshp v0.1.5

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

GeoShp

中文 | English

Overview

GeoShp is a lightweight JavaScript library that allows you to parse Shapefile (.shp and .dbf) files and convert them into GeoJSON objects. It supports both Node.js and browser environments, and can be used with either CommonJS or ES Modules. With no external dependencies, GeoShp provides a simple and efficient way to handle geographic data in your JavaScript applications.

Features

  • Pure JavaScript: No additional libraries or dependencies required.
  • Cross-environment: Works in both Node.js and modern browser environments.
  • Module support: Compatible with CommonJS and ES Modules.
  • Shapefile parsing: Parses .shp and .dbf files to extract geographic data.
  • GeoJSON output: Converts parsed data into GeoJSON format for easy integration with mapping libraries.

Installation

Node.js

To use GeoShp in a Node.js project, install it via npm:

npm install geoshp

Browser

For browser usage, you can include GeoShp as a module in your JavaScript bundle. Ensure your build system supports ES Modules or use a CDN link if available.

Usage

CommonJS Example

The following example demonstrates how to use GeoShp with CommonJS in a Node.js environment:

const fs = require("fs");
const GeoShp = require('geoshp');

// Read .shp and .dbf files synchronously
const dbfBuffer = fs.readFileSync('./data/mian.dbf');
const shpBuffer = fs.readFileSync('./data/mian.shp');

// Convert the Shapefile data to GeoJSON
const json = GeoShp.toJSON(
    shpBuffer.buffer,       // SHP file buffer
    shpBuffer.byteOffset,   // SHP file buffer offset
    dbfBuffer.buffer,       // DBF file buffer
    dbfBuffer.byteOffset    // DBF file buffer offset
);

// Output the GeoJSON object as a string
console.log(JSON.stringify(json, null, 2));

ES Modules Example

For ES Modules, the usage is similar but with import statements:

import * as GeoShp from 'geoshp';
import fs from 'fs';

// Read .shp and .dbf files synchronously
const dbfBuffer = fs.readFileSync('./data/mian.dbf');
const shpBuffer = fs.readFileSync('./data/mian.shp');

// Convert the Shapefile data to GeoJSON
const json = GeoShp.toJSON(
    shpBuffer.buffer,       // SHP file buffer
    shpBuffer.byteOffset,   // SHP file buffer offset
    dbfBuffer.buffer,       // DBF file buffer
    dbfBuffer.byteOffset    // DBF file buffer offset
);

// Output the GeoJSON object as a string
console.log(JSON.stringify(json, null, 2));

Browser Usage

In a browser environment, you would typically load the GeoShp module along with your other dependencies using a module bundler like Webpack or Rollup. Once included, the usage is the same as in Node.js, except you would obtain the .shp and .dbf file contents through other means (e.g., fetching from a server).

API

GeoShp.toJSON(shpBuffer, shpOffset, dbfBuffer, dbfOffset)

  • shpBuffer: ArrayBuffer - The buffer containing the .shp file data.
  • shpOffset: number - The byte offset within the .shp buffer where the data starts.
  • dbfBuffer: ArrayBuffer - The buffer containing the .dbf file data.
  • dbfOffset: number - The byte offset within the .dbf buffer where the data starts.

Returns a GeoJSON object representing the parsed Shapefile data.

License

GeoShp is licensed under the MIT License.

Contributing

Feel free to contribute to GeoShp by submitting issues, feature requests, or pull requests on the GitHub repository.

Support

For support or questions, please use the GitHub issues page.

0.1.5

10 months ago

0.1.4

10 months ago

0.1.3

10 months ago

0.1.2

10 months ago

0.1.1

10 months ago

0.1.0

10 months ago