Comment ajouter des fonctionnalités vectorielles à une carte openlayers 3 carte

OpenLayers est un outil jаvascript puissant qui nous permet de créer et d`afficher toutes sortes de cartes sur un site Web. Cet article vous guidera dans l`ajout d`un point et d`une fonction de chaîne de ligne, puis transformez leurs projections pour utiliser les coordonnées, puis ajoutez une certaine couleur en réglant le style du calque.

Veuillez noter que vous devez disposer d`une carte d`openloule de travail installée dans une page Web pour suivre cet article. Si vous n`en avez pas, voyez comment créer une carte en utilisant OpenLayers 3.

Pas

Partie 1 de 3:
Ajout de fonctionnalités de point et de chaîne de ligne
1. Créer une fonctionnalité de point. Copiez simplement la ligne de code suivante dans votre élément:.
var point_feature = NOUVEAU OL.Fonctionnalité({ })-
  • 2. Définir la géométrie du point. Pour dire aux OpenLayers où placer le point, vous devez créer une géométrie et lui donner un ensemble de coordonnées, ce qui est une matrice sous la forme de [Longitude (E-W), latitude (N-S)]. Le code suivant crée cela et défini la géométrie du point:
    Var Point_Geom = NEW OL.géom.Point ([20, 20]) - Pointe_feature.Sétigométrie (point_geom)-
  • 3. Créer une fonctionnalité de chaîne de ligne. Les chaînes de ligne sont des lignes droites cassées en segments. Nous les créons comme des points comme des points, mais nous fournissons une paire de coordonnées pour chaque point de la chaîne de ligne:
    var linetring_feature = nouvelle ol.Caractéristique ({Géométrie: NEW OL.géom.LineString ([[10, 20], [20, 10], [30, 20]])})-
  • 4. Ajoutez les fonctions à une couche de vecteur. Pour ajouter les fonctionnalités à la carte, vous devez les ajouter à une source, que vous ajoutez à une couche de vecteur, que vous pouvez ensuite ajouter à la carte:
    var vector_layer = NEW OL.couche.Vecteur ({Source: NEW OL.la source.Vector ({Caractéristiques: [POINT_FEATURE, LINESTRING_FEATURE]})}) Carte.addlayer (vector_layer)-
  • Partie 2 de 3:
    Transformer les géométries des caractéristiques pour utiliser des coordonnées

    Comme pour tout logiciel de mappage puissant, les cartes OpenLayers peuvent avoir différentes couches de différentes manières d`afficher des informations. Parce que la terre est un globe et non plat, lorsque nous essayons de l`afficher sur nos cartes plates, le logiciel doit régler les emplacements pour correspondre à la carte plate. Ces différentes manières d`afficher les informations sur la carte sont appelées projections. Pour utiliser une couche de vecteur et une couche de tuile ensemble sur la même carte, nous devons transformer les couches d`une projection à une autre.

    1. Mettre les fonctionnalités dans un tableau. Nous commençons par mettre les fonctionnalités que nous voulons transformer en une matrice que nous pouvons itératives à travers.
    CARACTÉRISTIQUES VAR = [POINT_FEATURE, LINESTRING_FEATURE]-
  • 2. Écrivez la fonction de transformation. Dans OpenLayers, nous pouvons utiliser la fonction Transform () sur l`objet géométrique de chaque fonctionnalité. Mettez ce code de transformation en une fonction que nous pouvons appeler plus tard:
    Fonction Transform_geométrie (élément) {Var Current_Projection = Nouvelle OL.proj.Projection ({code: "EPSG: 4326"}) - var new_projection = tuile_layer.getsource ().GetProjection () - Élément.getgeométrie ().transformer (actuel_projection, new_projection) -) -}
  • 3. Appelez la fonction de transformation sur les fonctionnalités. Maintenant simplement itérer à travers le tableau.
    fonctionnalités.foreach (Transform_geométrie)-
  • Partie 3 sur 3:
    Régler le style de la couche de vecteur

    Pour modifier ce que chaque fonctionnalité de la carte ressemble, nous devons créer et appliquer un style. Les styles peuvent changer de couleur, de tailles et d`autres attributs des points et des lignes, et ils peuvent également afficher des images pour chaque point, ce qui est très pratique pour les cartes personnalisées. Cette section n`est pas nécessaire, mais c`est amusant et utile.

    1. Créer le remplissage et le stooke. Créez un objet de style de remplissage et une couleur rouge semi-transparente et un style de course (ligne) qui est une ligne rouge solide:
    Var Fill = NEW OL.style.Remplir ({couleur: [180, 0, 0, 0.3]}) - Var Course = Nouvelle OL.style.Course ({couleur: [180, 0, 0, 1], largeur: 1})-
  • 2. Créez le style et appliquez-le à la couche. L`objet style OpenLayers est assez puissant, mais nous allons seulement définir le remplissage et l`accident vasculaire cérébral pour l`instant:
    Style Var = NOUVEAU OL.style.Style ({image: NOUVELL OL.style.Cercle ({remplissage: remplissage, course: AVC, rayon: 8}), remplissage: remplissage, course: AVC}) - vector_layer.SetStyle (style)-
  • Image intitulée 7062783 10
    3. Découvrez la carte finie.
  • Conseils

    N`ayez pas peur d`utiliser OpenLayers 3 Documentation API: Bien que cela soit écrasant au début, il est essentiel d`apprendre à faire de nouvelles choses avec des openlouches.
    Articles connexes