Hoe voegt u vectorfuncties toe aan een openlayers 3-kaart

OpenLayers is een krachtige jаvascript-tool waarmee we allerlei kaarten op een website kunnen maken en weergeven. Dit artikel zal u begeleiden bij het toevoegen van een punt en een lijnstringfunctie, transformeert vervolgens hun projecties om coördinaten te gebruiken en vervolgens wat kleur toe te voegen door de stijl van de laag in te stellen.

Houd er rekening mee dat u een Working OpenLayers-kaart moet hebben geïnstalleerd in een webpagina om dit artikel te volgen. Als je er geen hebt, kijk dan hoe je een kaart maakt met OpenLayers 3.

Stappen

Deel 1 van 3:
Toevoegen van punt- en lijnkoordfuncties
1. Maak een puntfunctie. Kopieer eenvoudig de volgende regel van de code in uw element:.
var point_feature = nieuwe ol.Voorzien zijn van({ })-
  • 2. Stel de geometrie van het punt in. Om OpenLayers te vertellen waar u het punt wilt plaatsen, moet u een geometrie maken en een reeks coördinaten geven, wat een array is in de vorm van [Longtitude (E-W), Latitude (N-S)]. De volgende code creëert deze en SET`s de geometrie van het punt:
    var point_Geom = nieuwe ol.geom.Punt ([20, 20]) - Point_feature.setgeometrie (Point_Geom)-
  • 3. Maak een lijnstringfunctie. Lijnreeksen zijn rechte lijnen die in segmenten zijn gebroken. We maken ze net als punten, maar we bieden een paar coördinaten voor elk punt van de lijnkoord:
    Var Linestring_Feature = NIEUWE OL.Functie ({geometrie: Nieuwe OL.geom.LINESTRINGEN ([[10, 20], [20, 10], [30, 20]])})-
  • 4. Voeg de functies toe aan een vectorlaag. Om de functies aan de kaart toe te voegen, moet u ze toevoegen aan een bron, die u aan een vectorlaag toevoegt, die u vervolgens kunt toevoegen aan de kaart:
    Var Vector_Layer = Nieuwe OL.laag.Vector ({bron: NIEUWE OL.bron.Vector ({functies: [point_feature, linestring_feature]})}) Kaart.addlayer (vector_layer)-
  • Deel 2 van 3:
    Transformeren van de geometrieën van de functies om coördinaten te gebruiken

    Net als bij eventuele krachtige toewijzingssoftware kunnen OpenLayers Maps verschillende lagen hebben met verschillende manieren om informatie weer te geven. Omdat de aarde een wereldbol is en niet plat is, wanneer we het proberen te tonen op onze platte kaarten, moet de software de locaties aanpassen aan de platte kaart. Deze verschillende manieren om kaartinformatie weer te geven, worden genoemd uitsteeksels. Om een ​​vectorlaag te gebruiken en een tegellaag samen op dezelfde kaart betekent dat we de lagen van de ene projectie naar de andere moeten transformeren.

    1. Zet de functies in een array. We beginnen met het plaatsen van de functies die we willen transformeren in een array die we kunnen hebben.
    Var-functies = [Point_feature, linestring_feature]-
  • 2. Schrijf de transformatie-functie. In OpenLayers kunnen we de functie Transform () op het geometrie-object van elke functie gebruiken. Zet deze transformatiecode in een functie die we later kunnen bellen:
    Functie Transform_Geometry (element) {Var Current_Projectie = Nieuwe OL.proj.Projectie ({Code: "EPSG: 4326"}) - Var new_projectie = TILE_LAYER.Getsource ().GetProjectie () - Element.Gegroneometry ().transformatie (huidig_projectie, new_projectie) -) -}
  • 3. Bel de transformatie-functie op de functies. Nu simpelweg door de array.
    Kenmerken.foreach (transform_geometry)-
  • Deel 3 van 3:
    De stijl van de vectorlaag instellen

    Om te veranderen wat elke functie op de kaart eruit ziet, moeten we een stijl maken en toepassen. Stijlen kunnen kleuren, maten en andere kenmerken van punten en lijnen veranderen en ze kunnen ook afbeeldingen voor elk punt weergeven, wat erg handig is voor aangepaste kaarten. Dit gedeelte is niet nodig, maar het is leuk en nuttig.

    1. Maak de vulling en stook. Maak een vulstijlobject en een semi-transparante rode kleur en een slag (lijn) stijl die een solide rode lijn is:
    var vullen = nieuwe ol.stijl.Vul ({Kleur: [180, 0, 0, 0.3]}) - Var Slag = NIEUWE OL.stijl.Beroerte ({Kleur: [180, 0, 0, 1], Breedte: 1})-
  • 2. Maak de stijl en pas het aan op de laag. Het Style-object OpenLayers is vrij krachtig, maar we gaan alleen de vulling en beroerte voor nu instellen:
    Var Style = NIEUWE OL.stijl.Stijl ({afbeelding: New Ol.stijl.Cirkel ({Fill: Fill, Slag: Slag, Radius: 8}), Fill: Fill, Stroke: Stroke}) - Vector_Layer.Setstyle (stijl)-
  • Titel afbeelding 7062783 10
    3. Bekijk de voltooide kaart.
  • Tips

    Wees niet bang om te gebruiken OpenLayers 3 API-documentatie: Hoewel het in het begin overweldigd is, is het van vitaal belang om te leren hoe je nieuwe dingen met OpenLayers kunt doen.
    Deel in het sociale netwerk:
    Vergelijkbaar