../../_images/logo_geostyler.png ../../_images/OSGeo_community.png

GeoStyler gyorstalpaló

Ez a gyorstalpaló néhány alapvető lépést ismertet a a munka megkezdéséhez a GeoStyler-ben: a GeoStyler telepítése és az első felhasználói felületi összetevő hozzáadása az alkalmazáshoz.

Egy teljesen kezdőknek szóló oktatóanyag található itt localhost/geostyler.

A GeoStyler könnyűvé teszi a geo adatok stílusának beállítását bármely honlapon. Az felhasználói felület független bármely stílus formátumtól és használható például OpenLayers-hez vagy SLD-hez.

GeoStyler telepítése

A GeoStyler használatához a számítógépére telepíteni kell a node.js. Az útmutatót a telepítéshez megtalálhatja a node.js honlapon.

Ajánlott a GeoStyler-t minden projekthez külön-külön telepíteni. Ez a szakasz a szükséges lépéseket ismerteti.

A GeoStyles legegyszerűbb telepítési módja az npm használata, melyet a node.js telepítésével megkapunk. Egyszerűen futtassa az alábbi parancsot projektjének gyökér könyvtárából:

npm i geostyler

Győződjön meg róla hogy az összes függőség a megfelelő verzióját telepítette:

npm i react react-dom antd ol

Ne felejtse el telepíteni a használni akart értelmezőket:

npm i geostyler-sld-parser

GeoStyler integráció

Importálja a GeoStyler Style` komponensét az alkalmazásába a következők szerint:

import { Style } from 'geostyler';

A Style komponens a stílus beállítás variációit biztosítja.

Az importálás után így használhatja a rajzoló módszereiben:

<Style
    compact={true}
/>

A Style` komponensnek látszania kell a böngészőben,

../../_images/quickstart_compact.png

geostyler-sld-parser integrálása

Egy meglévő SLD GeoStylerrel szerkesztéséhez először importálni és példányosítani kell a „geostyler-sld-parser”-t.

import SLDParser from 'geostyler-sld-parser';
const parser = new SLDParser();

Ezután be tudunk olvasni egy létező SLD a GeoStyler olvasható formátumba.

parser.readStyle('<?xml version="1.0" encoding="UTF-8"?>' +
                    '<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" xmlns="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">' +
                        '<sld:NamedLayer>' +
                            '<sld:Name>Default Styler</sld:Name>' +
                            '<sld:UserStyle>' +
                                '<sld:Name>Default Styler</sld:Name>' +
                                '<sld:Title>Gravel_Program_2016</sld:Title>' +
                                '<sld:FeatureTypeStyle>' +
                                    '<sld:Name>name</sld:Name>' +
                                    '<sld:Rule>' +
                                    '<sld:MinScaleDenominator>1.0</sld:MinScaleDenominator>' +
                                    '<sld:MaxScaleDenominator>1.0E7</sld:MaxScaleDenominator>' +
                                    '<sld:LineSymbolizer>' +
                                        '<sld:Stroke>' +
                                            '<sld:CssParameter name="stroke">#8000FF</sld:CssParameter>' +
                                            '<sld:CssParameter name="stroke-width">3.000</sld:CssParameter>' +
                                        '</sld:Stroke>' +
                                    '</sld:LineSymbolizer>' +
                                    '</sld:Rule>' +
                                '</sld:FeatureTypeStyle>' +
                            '</sld:UserStyle>' +
                        '</sld:NamedLayer>' +
                    '</sld:StyledLayerDescriptor>')
    .then(style => console.log(style.output));

Ahhoz, hogy ezt a stílust a felhasználói felülethez kapcsoljuk, egy állapot változóban kell tárolnunk és át kell adnunk a Style komponensünknek. A myStyle stílusváltozóként deklarálása után, a következőképpen használhatja:

parser.readStyle('<?xml version="1.0" encoding="UTF-8"?>' +
                    '<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" xmlns="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">' +
                        '<sld:NamedLayer>' +
                            '<sld:Name>Default Styler</sld:Name>' +
                            '<sld:UserStyle>' +
                                '<sld:Name>Default Styler</sld:Name>' +
                                '<sld:Title>Gravel_Program_2016</sld:Title>' +
                                '<sld:FeatureTypeStyle>' +
                                    '<sld:Name>name</sld:Name>' +
                                    '<sld:Rule>' +
                                    '<sld:MinScaleDenominator>1.0</sld:MinScaleDenominator>' +
                                    '<sld:MaxScaleDenominator>1.0E7</sld:MaxScaleDenominator>' +
                                    '<sld:LineSymbolizer>' +
                                        '<sld:Stroke>' +
                                            '<sld:CssParameter name="stroke">#8000FF</sld:CssParameter>' +
                                            '<sld:CssParameter name="stroke-width">3.000</sld:CssParameter>' +
                                        '</sld:Stroke>' +
                                    '</sld:LineSymbolizer>' +
                                    '</sld:Rule>' +
                                '</sld:FeatureTypeStyle>' +
                            '</sld:UserStyle>' +
                        '</sld:NamedLayer>' +
                    '</sld:StyledLayerDescriptor>')
    .then(style => this.setStyle({myStyle: style.output}));

// ...

<Style
    compact={true}
    style={myStyle}
/>

A GeoStyler felületének meg kell felelnie az SLD-ben definiált stílusnak.

A Style komponensből a módosított stíluts SLD-ként megkaphatjuk, használhatja a geostyler-sld-parser writeStyle() metódusát a Style komponens onStyleChange() metódusából.

parser.readStyle('<?xml version="1.0" encoding="UTF-8"?>' +
                    '<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" xmlns="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">' +
                        '<sld:NamedLayer>' +
                            '<sld:Name>Default Styler</sld:Name>' +
                            '<sld:UserStyle>' +
                                '<sld:Name>Default Styler</sld:Name>' +
                                '<sld:Title>Gravel_Program_2016</sld:Title>' +
                                '<sld:FeatureTypeStyle>' +
                                    '<sld:Name>name</sld:Name>' +
                                    '<sld:Rule>' +
                                    '<sld:MinScaleDenominator>1.0</sld:MinScaleDenominator>' +
                                    '<sld:MaxScaleDenominator>1.0E7</sld:MaxScaleDenominator>' +
                                    '<sld:LineSymbolizer>' +
                                        '<sld:Stroke>' +
                                            '<sld:CssParameter name="stroke">#8000FF</sld:CssParameter>' +
                                            '<sld:CssParameter name="stroke-width">3.000</sld:CssParameter>' +
                                        '</sld:Stroke>' +
                                    '</sld:LineSymbolizer>' +
                                    '</sld:Rule>' +
                                '</sld:FeatureTypeStyle>' +
                            '</sld:UserStyle>' +
                        '</sld:NamedLayer>' +
                    '</sld:StyledLayerDescriptor>')
    .then(style => this.setStyle({myStyle: style.output}));

// ...

<Style
    compact={true}
    style={myStyle}
    onStyleChange={gsStyle => {
        parser.writeStyle(gsStyle)
            .then(sld => console.log(sld.output));
    }}
/>

Kipróbálandó dolgok

A következő lépésben megpróbálhat egy OpenLayers térképet hozzáadni és a Style komponenst a térképhez kapcsolni, így közvetlenül láthatja a módosításait a térképen.

Mi a következő?

Tekintse meg ezeket, ezzel az alkalmazással kapcsolatos egyéb forrásokat.