5. Přidání liniových a bodových prvků
Parcely katastrální mapy jsou pro nás podkladovou mapou. V dalším kroku bychom chtěli přidat obsah týkající se specifických prvků - místa obřadu, restaurace a informace o přesunech z jednoho místa do druhého. Tyto informace jsou z velké části uloženy v připravených GeoJSON souborech. Tyto soubory do mapy přidáme následujícím způsobem:
// Routes from one important place to another
var routes = new VectorLayer({
source: new VectorSource({
url: 'features/routes.geojson',
format: new GeoJSON({
defaultDataProjection :'EPSG:5514',
projection: 'EPSG:5514'
})
}),
style: routeStyle
});
// Add layer to map
map.addLayer(routes);
// Map symbols of both important places
var mapSymbols = new VectorLayer({
source: new VectorSource({
url: 'features/map_symbols.geojson',
format: new GeoJSON({
defaultDataProjection :'EPSG:5514',
projection: 'EPSG:5514'
})
}),
style: mapSymbolStyle
});
// Add layer to map
map.addLayer(mapSymbols);
Styly routeStyle a mapSymbolStyle definujeme na začátku skriptu main.js (tam kde jsme definovali statické stylování pro vektorové dlaždice). Jedná se o statické stylování pomocí funkce, která styluje prvky podle informací obsažených v GeoJSON souborech. U cest definujeme sílu a typ čáry, zatímco u mapových symbolů definujeme vzhled ikonky (velikost, umístění, symbol).
// Style for routes according to geojson file
function routeStyle (feature) {
return new Style({
stroke: new Stroke({
color: feature.getProperties().color,
width: feature.getProperties().width,
lineDash: feature.getProperties().lineDash,
})
})
};
// Style for map symbols according to geojson file
function mapSymbolStyle (feature) {
return new Style({
image: new Icon({
scale: feature.getProperties().scale,
anchor: feature.getProperties().anchor,
anchorXUnits: feature.getProperties().anchorXUnits,
anchorYUnits: feature.getProperties().anchorYUnits,
src: feature.getProperties().src
})
})
};
import {Icon, Fill, Stroke, Style} from 'ol/style';
import VectorSource from 'ol/source/Vector';
import VectorLayer from 'ol/layer/Vector';
import GeoJSON from 'ol/format/GeoJSON';
V mapě se zobrazí dvě ikonky a několik linestringů zobrazujících možnosti přesunů z místa obřadu do místa hostiny.

S těmito prvky budeme dále pracovat a přidávat jim interaktivitu.