Cum se adaugă caracteristici vectoriale pe o hartă OpenLayers 3 (cu imagini)

Cuprins:

Cum se adaugă caracteristici vectoriale pe o hartă OpenLayers 3 (cu imagini)
Cum se adaugă caracteristici vectoriale pe o hartă OpenLayers 3 (cu imagini)

Video: Cum se adaugă caracteristici vectoriale pe o hartă OpenLayers 3 (cu imagini)

Video: Cum se adaugă caracteristici vectoriale pe o hartă OpenLayers 3 (cu imagini)
Video: Intra in windows daca ai uitat parola *Metoda 2021* 2024, Noiembrie
Anonim

OpenLayers este un puternic instrument JavaScript care ne permite să creăm și să afișăm tot felul de hărți pe un site web. Acest articol vă va ghida în adăugarea unui punct și a unei caracteristici de șir de linie, apoi transformați proiecțiile acestora pentru a utiliza coordonatele, apoi adăugați o anumită culoare prin setarea stilului stratului.

Vă rugăm să rețineți că trebuie să aveți instalată o hartă OpenLayers funcțională într-o pagină web pentru a urma acest articol. Dacă nu aveți una, consultați Cum să creați o hartă folosind OpenLayers 3.

Pași

Partea 1 din 3: Adăugarea caracteristicilor punctului și șirului de linii

Pasul 1. Creați o caracteristică punct

Pur și simplu copiați următoarea linie de cod în

element:

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

Pasul 2. Setați geometria punctului

Pentru a spune OpenLayers unde trebuie plasat punctul, trebuie să creați o geometrie și să îi dați un set de coordonate, care este o matrice sub forma [longitudine (E-W), latitudine (N-S)]. Următorul cod creează acest lucru și setează geometria punctului:

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

Pasul 3. Creați o caracteristică de șir de linii

Șirurile de linie sunt linii drepte împărțite în segmente. Le creăm exact ca punctele, dar oferim o pereche de coordonate pentru fiecare punct al șirului de linii:

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

Pasul 4. Adăugați caracteristicile unui strat vector

Pentru a adăuga caracteristicile pe hartă, trebuie să le adăugați la o sursă, pe care să o adăugați la un strat vector, pe care să le puteți adăuga apoi pe hartă:

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

Partea 2 din 3: Transformarea geometriilor caracteristicilor pentru a utiliza coordonatele

Ca și în cazul oricărui software puternic de cartografiere, hărțile OpenLayers pot avea diferite straturi cu diferite moduri de afișare a informațiilor. Deoarece Pământul este un glob și nu plat, atunci când încercăm să-l afișăm pe hărțile noastre plate, software-ul trebuie să regleze locațiile pentru a se potrivi cu harta plată. Aceste modalități diferite de a afișa informații despre hartă sunt numite proiecții. A folosi un strat vector și un strat de țiglă împreună pe aceeași hartă înseamnă că trebuie să transformăm straturile de la o proiecție la alta.

Pasul 1. Puneți caracteristicile într-o matrice

Începem prin a pune caracteristicile pe care dorim să le transformăm împreună într-o matrice prin care putem itera.

caracteristici var = [caracteristică_punct, caracteristică_linestring];

Pasul 2. Scrieți funcția de transformare

În OpenLayers, putem folosi funcția transform () pe obiectul de geometrie al fiecărei caracteristici. Puneți acest cod de transformare într-o funcție pe care o putem numi mai târziu:

function transform_geometry (element) {var current_projection = new ol.proj. Projection ({cod: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); element.getGeometry (). transform (proiecție_ curentă, proiecție_ nouă);); }

Pasul 3. Apelați funcția de transformare pe caracteristici

Acum pur și simplu iterați prin matrice.

features.forEach (transform_geometry);

Partea 3 din 3: Setarea stilului straturilor vectoriale

Pentru a schimba cum arată fiecare caracteristică de pe hartă, trebuie să creăm și să aplicăm un stil. Stilurile pot schimba culorile, dimensiunile și alte atribute ale punctelor și liniilor și pot afișa, de asemenea, imagini pentru fiecare punct, ceea ce este foarte util pentru hărțile personalizate. Această secțiune nu este necesară, dar este distractivă și utilă.

Pasul 1. Creați umplutura și stoke

Creați un obiect de stil de umplere și o culoare roșie semi-transparentă și un stil de linie (linie) care este o linie roșie continuă:

var fill = new ol.style. Fill ({culoare: [180, 0, 0, 0.3]}); var stroke = new ol.style. Stroke ({culoare: [180, 0, 0, 1], lățime: 1});

Pasul 2. Creați stilul și aplicați-l pe strat

Obiectul de stil OpenLayers este destul de puternic, dar vom seta doar umplerea și linia deocamdată:

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

Recomandat: