* [components,maps][l]: implements Leaflet map component -- #963 * [openspending, maps][m]: fix build for leaflet map * Feature/openlayers map (#967) * [maps][xl] - working with swc equals to minify * [maps][xs] - fixing height * [openspending][xs] - testing * [openspending][xs] - testing * [openspending][xs] - change order drd * [openspending][xs] - add map * [maps,tests][xs]: add default export to OpenLayers component * [@portaljs/components][m] - map components --------- Co-authored-by: João Demenech <joaommdemenech@gmail.com>
137 lines
2.9 KiB
TypeScript
137 lines
2.9 KiB
TypeScript
import type { Meta, StoryObj } from '@storybook/react';
|
|
import React from 'react';
|
|
import OpenLayers from '../src/components/OpenLayers/OpenLayers';
|
|
|
|
const meta: Meta = {
|
|
title: 'Components/OpenLayers',
|
|
component: OpenLayers,
|
|
argTypes: {
|
|
layers: {
|
|
description: 'Layers to be added to the map',
|
|
control: {
|
|
type: 'array',
|
|
},
|
|
},
|
|
center: {
|
|
description: 'Center of the map',
|
|
defaultValue: [0, 0],
|
|
control: {
|
|
type: 'array',
|
|
},
|
|
},
|
|
zoom: {
|
|
description: 'Zoom level of the map',
|
|
defaultValue: 1,
|
|
control: {
|
|
type: 'number',
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
export default meta;
|
|
|
|
type Story = StoryObj<any>;
|
|
|
|
export const Secondary: Story = {
|
|
name: 'Map with OpenLayers',
|
|
args: {
|
|
layers: [
|
|
{
|
|
url: 'https://openlayers.org/data/vector/ecoregions.json',
|
|
name: 'Ecoregions',
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
export const Primary: Story = {
|
|
name: 'Map with OpenLayers 2',
|
|
args: {
|
|
layers: [
|
|
{
|
|
url: 'https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_10m_geography_marine_polys.geojson',
|
|
name: 'Marine regions',
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
export const MapWithPopover: Story = {
|
|
name: 'Map with popup',
|
|
args: {
|
|
layers: [
|
|
{
|
|
url: 'https://openlayers.org/data/vector/ecoregions.json',
|
|
name: 'Ecoregions',
|
|
},
|
|
],
|
|
popup: (feature: any) => {
|
|
return (
|
|
<div className="flex flex-col gap-y-1" style={{ color: 'red' }}>
|
|
<span className="font-bold">Biome name</span>
|
|
<span className="text-sm">{feature.values_.BIOME_NAME}</span>
|
|
</div>
|
|
);
|
|
},
|
|
},
|
|
};
|
|
|
|
export const Third: Story = {
|
|
name: 'Map with two layers',
|
|
args: {
|
|
layers: [
|
|
{
|
|
url: 'https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_10m_geography_marine_polys.geojson',
|
|
name: 'Marine regions',
|
|
},
|
|
{
|
|
url: 'https://openlayers.org/data/vector/ecoregions.json',
|
|
name: 'Ecoregions',
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
export const CustomCenter: Story = {
|
|
name: 'Map with custom center and zoom',
|
|
args: {
|
|
layers: [
|
|
{
|
|
url: 'https://openlayers.org/data/vector/ecoregions.json',
|
|
name: 'Ecoregions',
|
|
},
|
|
],
|
|
center: [-15, 20],
|
|
zoom: 4,
|
|
},
|
|
};
|
|
|
|
export const PointsOnMap: Story = {
|
|
name: 'Map with points on',
|
|
args: {
|
|
layers: [
|
|
{
|
|
url: 'https://opendata.arcgis.com/datasets/9c58741995174fbcb017cf46c8a42f4b_25.geojson',
|
|
name: 'E-Scooter Parking Bays',
|
|
},
|
|
],
|
|
center: [-1.055429957881787, 53.963900188025301],
|
|
zoom: 12,
|
|
},
|
|
};
|
|
|
|
export const KMLFile: Story = {
|
|
name: 'Map with KML File',
|
|
args: {
|
|
layers: [
|
|
{
|
|
url: 'https://openlayers.org/en/latest/examples/data/kml/2012_Earthquakes_Mag5.kml',
|
|
name: '2012 Earthquakes M5+',
|
|
format: 'kml',
|
|
heatmap: true,
|
|
},
|
|
],
|
|
},
|
|
};
|