0.1.32 • Published 2 months ago

strapi-leaflet-geoman v0.1.32

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

Strapi-Leaflet-Geoman

A Strapi plugin allowing you to implement a Leaflet-Geoman custom field into your content-types, which can be used to pick and retrieve locations.

✨ Usage

The API response of a Strapi content-type implementing this leaflet-geoman custom field could look as follows:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point | Polygon | MultiLineString | LineString",
          "coordinates": [-104.99404, 39.75621]
      },
      "properties": {
      	"style": {
          "color": "#059669",
          "weight": 8
        },
      }
    }
  ]
}

You can configure globally this plugin inside your Strapi dashboard's settings tab (e.g. to enter leaflet tile url, attribution etc.).

Preview

Also plugin can be configured per collection entity.

Preview

Now you can use Strapi Leaflet Geoman as a custom field.

Preview

❗ Requirements

🔧 Installation

You just need to install the strapi-leaflet-geoman package via npm, at the root of your strapi project.

npm:

npm i strapi-leaflet-geoman

yarn:

yarn add strapi-leaflet-geoman

To make Strapi Leaflet Geoman work, you should take a look at the next section.

After restarting your Strapi app, Strapi Leaflet Geoman should be listed as one of your plugins.

🚀 Strapi Configuration (required)

Allow all Google Maps assets to be loaded correctly by customizing the strapi::security middleware inside ./config/middlewares.js.

Instead of:

export default [
  // ...
  'strapi::security',
  // ...
];

Write:

export default [
  // ...
  {
    name: 'strapi::security',
    config: {
      contentSecurityPolicy: {
        useDefaults: true,
        directives: {
          "connect-src": ["'self'", "https:"],
          "script-src": [
            "'self'",
            "unsafe-inline",
            "https://*.basemaps.cartocdn.com",
          ],
          "media-src": [
            "'self'",
            "blob:",
            "data:",
            "https://*.basemaps.cartocdn.com",
            "https://tile.openstreetmap.org",
          ],
          "img-src": [
            "'self'",
            "blob:",
            "data:",
            "https://*.basemaps.cartocdn.com",
            "market-assets.strapi.io",
            "https://tile.openstreetmap.org",
          ],
        },
      },
    },
  },
  // ...
];