Skip to content

A tool for easy creating and sharing GIS based on Shapefiles information

License

Notifications You must be signed in to change notification settings

ElsevierSoftwareX/SOFTX-D-24-00402

 
 

Repository files navigation

GisPublisher

npm version License: MIT Node.js Version

Tool designed to simplify the creation of web-based Geographic Information Systems (GIS) from a collection of shapefiles. With optional support for OGC Web Coverage Service (WCS), it simplifies the process of generating interactive GIS platforms, allowing users to visualize and analyze spatial data efficiently.

Table of Contents

  1. Installation
  2. Configuration
  3. Usage
  4. Examples
  5. Development
  6. Changing the config.json
  7. Authors
  8. License

Installation

nvm use (optional, if you have nvm installed, otherwise just use node 19.x)
npm install

Configuration

  • Add a SPL folder with the code needed. If you don't have one, you can use the https://github.com/lbdudc/mini-lps source code as a template. After that change the config.json to set the SPL routes to the mini LPS. For example, add it in the root of this project and set the following:
{
  "platform": {
    "codePath": "./lps/src/platform/code",
    "featureModel": "./lps/src/platform/model.xml",
    "config": "./lps/src/platform/config.json",
    "extraJS": "./lps/src/platform/extra.js",
    "modelTransformation": "./lps/src/platform/transformation.js"
  }
}

Also, if you can customize the features selected in your feature model adding a "features" key in the config.json file. For example:

{
  ...
  "features": [
    "feature1",
    "feature2"
  ],
}
  • Change the config.json file to match your needs. Choosing the type of deployment (local, ssh or aws) and the necessary parameters for each one. You can find more information about the configuration in the Changing the config.json section.

  • Add your shapefiles in a folder. The tool accepts shapefiles with the following extensions: .shp, .shx, .dbf, .prj, .cpg and .sld. Also accepts .zip files containing the shapefiles.

!WARNING!: The geometries must be in EPSG:4326 projection!, and the geometries of Polygon and LineString must be MultiPolygon and MultiLineString respectively.

Usage

gispublisher shapefilesFolder [--generate] [--config path] [--only-import] [--bbox bbox] [--help] [--version] [--debug]

Arguments

  • shapefilesFolder: Path to the folder containing the shapefiles to be published.

Options

  • --generate, -g: Just generate the product, do not deploy.
  • --config: Path to config file (default config file if not used).
  • --only-import, -i: Only import shapefiles.
  • --bbox: Bounding box to restrict the search. Format is expected to be: southwest_lng,southwest_lat,northeast_lng,northeast_lat.
  • --help: Print this info.
  • --version: Print version.

Examples

We provide some examples in the examples folder. You can use them to test the tool.

gispublisher examples/hello-world

gispublisher examples/WaterSupply

Development

# if nvm installed, otherwise just use node 19.x
nvm use

npm install

# to set husky git hooks (linting)
npm run prepare

# to run, first update config.json and then:
npx gispublisher args

# for example
npx gispublisher examples/hello-world

Changing the config.json

Local

  • Pre-requisites: Have docker and docker-compose installed
{
  "deploy": {
    "type": "local"
  },
  "host": "http://localhost:80"
}

SSH

{
  "deploy": {
    "type": "local",
    "host": "your-remote-host.com or IP",
    "port": 22222,
    "username": "username",
    "certRoute": "/path/to/your/cert.pem",
    "remoteRepoPath": "/path/to/remote/repo/code"
  },
  "host": "your-remote-host.com or IP"
}

AWS

"deploy": {
    "type": "aws",
    "AWS_ACCESS_KEY_ID": "AKIAJY2Q...",
    "AWS_SECRET_ACCESS_KEY": "X8Y4X0...",
    "AWS_REGION": "eu-west-2",
    "AWS_AMI_ID": "ami-08b064b1296caf3b2",
    "AWS_INSTANCE_TYPE": "t2.micro",
    "AWS_INSTANCE_NAME": "my-aws-instance",
    "AWS_SECURITY_GROUP_ID": "sg-0a1b2c3d4e5f6a7b8",
    "AWS_KEY_NAME": "mykey",
    "AWS_USERNAME": "ec2-user",
    "AWS_SSH_PRIVATE_KEY_PATH": "user/.ssh/mykey.pem",
    "REMOTE_REPO_PATH": "/home/ec2-user/code"
}

Authors

Name Email
Victor Lamas [email protected]
David De Castro [email protected]
Alejandro Cortiñas [email protected]

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

A tool for easy creating and sharing GIS based on Shapefiles information

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 93.1%
  • Shell 6.9%