npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

koop-provider-pg

v1.0.8

Published

A postgis provider for koop

Downloads

111

Readme

Koop PostGIS provider

npm version Build Status

Koop provider to query PostGIS spatial data, convert it to GeoJSON as input into Koop and convert into the GeoServices specification supported by ArcGIS products.

Database configuration

Database connection parameters can be configured to any connection using the following environment variables:

# All values should be string values except PG_PORT
PG_HOST="${HOST}"
PG_PORT=${PORT}
PG_DATABASE="${DATABASE}"
PG_USER="${USER}"
PG_PASSWORD="${PASSWORD}"

If database connection environment variables are not set the provider will use the default configuration.

  • Open config/default.json and set your database connection parameters, an example is provided in config/example.json.
{
  "db": {
    "host": "host",
    "port": 5432,
    "database": "dbname",
    "user": "user",
    "password": "password"
  }
}

Custom idField

The provider use gid as the OBJECTID unique identifier. Optionally, if you prefer to use another column from your database table, you can add/set the following environment variable for your data's custom feature unique identifier.

# value should be String, eg. "id"
export PG_OBJECTID="${OBJECT_ID}"

Custom PostgreSQL LIMIT

The provider uses Postgres JSONB which limits document size to 255MB in size. To optimize returning data from large datasets exceeding 255MB you can optionally add a limit to just a portion of the rows that are used to create the GeoJSON data. The default limit is 10000000 rows.

# value should be String, e.g. "1000"
export PG_LIMIT="${LIMIT}"

Install

Koop providers require you to first install Koop. You can add koop-provider-pg to your Koop server dependencies by installing it with npm:

# install koop cli using npm
$ npm install -g @koopjs/cli

# create a new koop app
$ koop new app pg-koop

# cd into the pg-koop app
$ cd pg-koop

# install provider
$ koop add provider koop-provider-pg

# start koop server
$ koop serve

Example API Query:

Replace ${schema}.${table} with schema.table from your PostGIS db to translate.

curl localhost:8080/pg/${schema}.${table}/rest/services/FeatureServer/0/query

Add as Feature Layer

  • Esri Leaflet
// esri leaflet feature layer
L.esri.featureLayer({
    url: 'http://localhost:8080/pg/rest/services/${schema}.${table}/FeatureServer/layers'
  }).addTo(map);

feature-service

  • ArcGIS Online WebMap
https://www.arcgis.com/home/webmap/viewer.html?url=http://localhost:8080/pg/rest/services/${schema}.${table}/FeatureServer/

agol feature-service

Test it out

Run server:

  • npm install
  • npm start

Dependencies

Contributors

Licensing

A copy of the license is available in the repository's LICENSE file.