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.
nvm use (optional, if you have nvm installed, otherwise just use node 19.x)
npm install
- 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.
gispublisher shapefilesFolder [--generate] [--config path] [--only-import] [--bbox bbox] [--help] [--version] [--debug]
-
shapefilesFolder
: Path to the folder containing the shapefiles to be published.
-
--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.
We provide some examples in the examples
folder. You can use them to test the tool.
gispublisher examples/hello-world
gispublisher examples/WaterSupply
# 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
- Pre-requisites: Have docker and docker-compose installed
{
"deploy": {
"type": "local"
},
"host": "http://localhost:80"
}
{
"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"
}
"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"
}
Name | |
---|---|
Victor Lamas | victor.lamas@udc.es |
David De Castro | david.decastro@udc.es |
Alejandro Cortiñas | alejandro.cortinas@udc.es |
This project is licensed under the MIT License - see the LICENSE.md file for details