open-index/open-npm huggingface dataset:
npm package: @gismark/strapi-geometry-fields
Description: Store and edit geospatial data with PostGIS in a Strapi v5 custom field
Author: Markov Media
Latest version: 1.1.1

# Geometry Fields plugin for Strapi

**Store and edit geospatial data with PostGIS in a Strapi v5 custom field.**

The plugin accepts WKT (Well-known text) or GeoJSON from the API and stores it in a PostGIS column in the db table of the content type. You can use multiple geometry fields across different content types. All features are editable and draggable using the hosted [Leaflet.Editable](https://github.com/Leaflet/Leaflet.Editable) and [Path.Drag](https://github.com/Leaflet/Path.Drag.js/).

Screenshot is a multipolygon with the boundaries of France as WKT.

![Geometry Field example](https://raw.githubusercontent.com/MarkovMedia/strapi-v5-geometry-fields/refs/heads/main/assets/geometry-fields.jpg)

## Installation

<pre> # with npm
npm install @gismark/strapi-geometry-fields </pre>

<pre> # with yarn
yarn add @gismark/strapi-geometry-fields </pre>

## Configuration

This plugin only runs with PostgreSQL and needs PostGIS to be installed. If you haven't already done so, run this query in Postgres:

<pre>CREATE EXTENSION postgis;</pre>

For the Leaflet map and the markers to display you must allow Openstreetmap in your middlewares.js. Update "strapi::security" like so:

<pre>
  {
    name: "strapi::security",
    config: {
      contentSecurityPolicy: {
        useDefaults: true,
        directives: {
          "img-src": ["'self'", "data:", "*.tile.openstreetmap.org"],
          upgradeInsecureRequests: null,
        },
      },
    },
  },
</pre>

In the settings, choose if the plugin should handle WKT or GeoJSON from the API (default is WKT)

## Usage

### In the Content Type Builder

- Create a new or choose an existing collection type
- In the field selection, select CUSTOM, choose the Geometry field and give it a name (e.g. 'geometry')
- Finish & Save

### In the code

Add this field to the schema.json of your content type

<pre>    "geometry": {
      "type": "customField",
      "customField": "plugin::geometry-fields.geometry"
    }</pre>

- An extra column '\_\_geom_geometry' is created in the db table for the content type.

## Examples

### input as WKT

<pre>
{ 
  data: {
    geometry: { wkt: "POINT (30 10)" }   
  }
}
</pre>

### input as GeoJSON

<pre>
{ 
  data: {
    geometry: {
    type: "Point",
    coordinates: [30, 10]
  }   
  }
}
</pre>

## Tested with

- Strapi 5.16.1
- PostgreSQL 12.4
- PostGIS 3.0.2

### Geometries

Currently, these geometries as WKT and GeoJSON are supported by the plugin for all CRUD functions:

- Point and MultiPoint
- LineString and MultiLineString
- Polygon and MultiPolygon
- GeometryCollection containing all of the above

## Real-world usage

Geometry Fields is used in a production environment by [Gismark](https://gismark.io), a web application for creating interactive maps with an AI-assisted workflow

## License

MIT
npm package: @gisweb/dynamic-form
Description: Libreria dinamica per la generazione di form Angular con step e condizioni
Author: GisWeb
Latest version: 0.1.3

# DynamicForm

This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.0.0.

## Code scaffolding

Angular CLI includes powerful code scaffolding tools. To generate a new component, run:

```bash
ng generate component component-name
```

For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:

```bash
ng generate --help
```

## Building

To build the library, run:

```bash
ng build dynamic-form
```

This command will compile your project, and the build artifacts will be placed in the `dist/` directory.

### Publishing the Library

Once the project is built, you can publish your library by following these steps:

1. Navigate to the `dist` directory:
   ```bash
   cd dist/dynamic-form
   ```

2. Run the `npm publish` command to publish your library to the npm registry:
   ```bash
   npm publish
   ```

## Running unit tests

To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:

```bash
ng test
```

## Running end-to-end tests

For end-to-end (e2e) testing, run:

```bash
ng e2e
```

Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.

## Additional Resources

For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.