0.2.3 • Published 17 days ago

@lbdudc/gis-publisher v0.2.3

Weekly downloads
-
License
MIT
Repository
github
Last release
17 days ago

GisPublisher

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

npm install -g @lbdudc/gis-publisher

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.

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"
  }
}

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"
  }
}

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

NameEmail
Victor Lamasvictor.lamas@udc.es
David De Castrodavid.decastro@udc.es
Alejandro Cortiñasalejandro.cortinas@udc.es

License

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