Kako dodati vektorske karakteristike na OpenLayers 3 kartu (sa slikama)

Sadržaj:

Kako dodati vektorske karakteristike na OpenLayers 3 kartu (sa slikama)
Kako dodati vektorske karakteristike na OpenLayers 3 kartu (sa slikama)

Video: Kako dodati vektorske karakteristike na OpenLayers 3 kartu (sa slikama)

Video: Kako dodati vektorske karakteristike na OpenLayers 3 kartu (sa slikama)
Video: Конфиденциальность, безопасность, общество — информатика для руководителей бизнеса, 2016 г. 2024, April
Anonim

OpenLayers je moćan JavaScript alat koji nam omogućuje stvaranje i prikaz svih vrsta karata na web stranici. Ovaj članak će vas voditi u dodavanju funkcije točke i niza linija, zatim transformirati njihove projekcije tako da koriste koordinate, a zatim dodati boju postavljanjem stila sloja.

Imajte na umu da za praćenje ovog članka trebate imati radnu OpenLayers kartu instaliranu na web stranici. Ako ga nemate, pogledajte Kako napraviti kartu koristeći OpenLayers 3.

Koraci

Dio 1 od 3: Dodavanje značajki niza točaka i linija

Korak 1. Kreirajte funkciju tačke

Jednostavno kopirajte sljedeći red koda u svoj

element:

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

Korak 2. Postavite geometriju tačke

Da biste OpenLayersu rekli gdje postaviti točku, morate stvoriti geometriju i dati joj skup koordinata, što je niz u obliku [dužina (E-Z), širina (N-S)]). Sljedeći kod stvara ovo i postavlja geometriju tačke:

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

Korak 3. Kreirajte funkciju nizova linije

Nizovi linija su ravne linije razbijene na segmente. Mi ih stvaramo kao točke, ali za svaku točku niza linija dajemo par koordinata:

var linestring_feature = nova ol. Feature ({geometrija: nova ol.geom. LineString (

Korak 4. Dodajte značajke vektorskom sloju

Da biste dodali značajke na mapu, morate ih dodati izvoru, koji dodate vektorskom sloju, koji zatim možete dodati na kartu:

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

Dio 2 od 3: Transformiranje geometrije značajki za korištenje koordinata

Kao i svaki moćan softver za mapiranje, OpenLayers karte mogu imati različite slojeve s različitim načinima prikaza informacija. Budući da je Zemlja globus, a ne ravna, softver koji pokušavamo prikazati na našim ravnim kartama mora softver prilagoditi lokacije tako da odgovaraju ravnoj karti. Zovu se ovi različiti načini za prikaz informacija o karti projekcije. Da bismo koristili vektorski sloj i sloj pločice zajedno na istoj karti znači da moramo transformirati slojeve iz jedne projekcije u drugu.

Korak 1. Stavite funkcije u niz

Započinjemo stavljanjem funkcija koje želimo transformirati zajedno u niz kroz koji možemo iteratirati.

var features = [point_feature, linestring_feature];

Korak 2. Napišite funkciju transformacije

U OpenLayers -u možemo koristiti funkciju transform () na geometrijskom objektu svake značajke. Stavite ovaj kod za pretvaranje u funkciju koju možemo pozvati kasnije:

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

Korak 3. Pozovite funkciju transformacije na značajkama

Sada jednostavno ponovite niz.

features.forEach (transform_geometry);

3. dio 3: Postavljanje stila vektorskog sloja

Da bismo promijenili izgled svake značajke na karti, moramo stvoriti i primijeniti stil. Stilovi mogu promijeniti boje, veličine i druge atribute točaka i linija, a mogu prikazati i slike za svaku točku, što je vrlo zgodno za prilagođene karte. Ovaj odjeljak nije potreban, ali je zabavan i koristan.

Korak 1. Kreirajte fill and stoke

Kreirajte objekt u stilu ispune i poluprozirnu crvenu boju te stil poteza (linije) koji je puna crvena linija:

var fill = novi ol.style. Fill ({boja: [180, 0, 0, 0.3]}); var stroke = new ol.style. Stroke ({boja: [180, 0, 0, 1], širina: 1});

Korak 2. Kreirajte stil i primijenite ga na sloj

Objekt u stilu OpenLayers je prilično moćan, ali zasad ćemo postaviti samo ispunu i potez:

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

Preporučuje se: