Hur man lägger till vektorfunktioner på en OpenLayers 3 -karta (med bilder)

Innehållsförteckning:

Hur man lägger till vektorfunktioner på en OpenLayers 3 -karta (med bilder)
Hur man lägger till vektorfunktioner på en OpenLayers 3 -karta (med bilder)

Video: Hur man lägger till vektorfunktioner på en OpenLayers 3 -karta (med bilder)

Video: Hur man lägger till vektorfunktioner på en OpenLayers 3 -karta (med bilder)
Video: Solved:This sign-in option is disabled because of failed sign-in attempts or repeated shutdowns.#yt 2024, April
Anonim

OpenLayers är ett kraftfullt JavaScript -verktyg som gör att vi kan skapa och visa alla möjliga kartor på en webbplats. Den här artikeln hjälper dig att lägga till en punkt och en radsträngsfunktion, sedan omvandla deras prognoser till att använda koordinater, lägg sedan till lite färg genom att ställa in lagrets stil.

Observera att du måste ha en fungerande OpenLayers -karta installerad på en webbsida för att följa den här artikeln. Om du inte har en, se Hur man gör en karta med OpenLayers 3.

Steg

Del 1 av 3: Lägga till punkt och linje sträng funktioner

Steg 1. Skapa en punktfunktion

Kopiera bara följande kodrad till din

element:

var point_feature = ny ol. Feature ({});

Steg 2. Ställ in punktens geometri

För att berätta för OpenLayers var punkten ska placeras måste du skapa en geometri och ge den en uppsättning koordinater, som är en matris i form av [longitud (E-W), latitud (N-S)]. Följande kod skapar detta och ställer in punktens geometri:

var point_geom = ny ol.geom. Point ([20, 20]); point_feature.setGeometry (point_geom);

Steg 3. Skapa en radsträngsfunktion

Linjesträngar är raka linjer uppdelade i segment. Vi skapar dem precis som punkter, men vi tillhandahåller ett par koordinater för varje punkt i radsträngen:

var linestring_feature = new ol. Feature ({geometry: new ol.geom. LineString (

Steg 4. Lägg till funktionerna i ett vektorlager

För att lägga till funktionerna på kartan måste du lägga till dem i en källa, som du lägger till i ett vektorgikt, som du sedan kan lägga till på kartan:

var vector_layer = new ol.layer. Vector ({source: new ol.source. Vector ({features: [point_feature, linestring_feature]})}) map.addLayer (vector_layer);

Del 2 av 3: Transformera funktionernas geometrier för att använda koordinater

Som med alla kraftfulla kartprogram kan OpenLayers -kartor ha olika lager med olika sätt att visa information. Eftersom Jorden är en jordglob och inte platt, måste programvaran justera platserna för att matcha den platta kartan när vi försöker visa den på våra platta kartor. Dessa olika sätt att visa kartinformation kallas projektioner. Att använda ett vektorlager och ett bricklager tillsammans på samma karta betyder att vi måste omvandla lagren från en projektion till en annan.

Steg 1. Sätt in funktionerna i en array

Vi börjar med att sätta ihop de funktioner vi vill omvandla till en matris som vi kan iterera genom.

var features = [point_feature, linestring_feature];

Steg 2. Skriv transformeringsfunktionen

I OpenLayers kan vi använda funktionen transform () på geometriobjektet för varje funktion. Sätt in denna omvandlingskod i en funktion som vi kan ringa senare:

funktion transform_geometry (element) {var current_projection = new ol.proj. Projection ({kod: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); element.getGeometry (). transform (current_projection, new_projection);); }

Steg 3. Anropa transform -funktionen till funktionerna

Nu iterera helt enkelt genom matrisen.

features.forEach (transform_geometry);

Del 3 av 3: Ställa in vektorlagerets stil

För att ändra hur varje funktion på kartan ser ut måste vi skapa och tillämpa en stil. Stilar kan ändra färger, storlekar och andra attribut för punkter och linjer, och de kan också visa bilder för varje punkt, vilket är mycket praktiskt för anpassade kartor. Det här avsnittet är inte nödvändigt, men det är roligt och användbart.

Steg 1. Skapa fyllningen och stoken

Skapa ett fyllstil-objekt och en halvtransparent röd färg och en streck (linje) stil som är en solid röd linje:

var fill = new ol.style. Fill ({color: [180, 0, 0, 0.3]}); var stroke = new ol.style. Stroke ({color: [180, 0, 0, 1], width: 1});

Steg 2. Skapa stilen och applicera den på lagret

OpenLayers -stilobjektet är ganska kraftfullt, men vi kommer bara att ställa in fyllningen och stroke för tillfället:

var style = new ol.style. Style ({image: new ol.style. Circle ({fill: fill, stroke: stroke, radius: 8}), fill: fill, stroke: stroke}); vector_layer.setStyle (stil);

Rekommenderad: