Maison  >  Questions et réponses  >  le corps du texte

Comment insérer un marqueur sur une carte Open Layers ?

Je suis actuellement en train de créer une application cartographique. J'ai essayé toutes les méthodes que j'ai trouvées sur Internet pour ajouter le balisage, mais cela ne fonctionne toujours pas. Est-ce que j'ai fait quelque chose de mal?

Voici mon code angulaire :

D'une manière ou d'une autre, il est beaucoup plus facile d'utiliser Leaflet, mais je ne veux pas abandonner si tôt Open Layers.

export class MapComponent implements OnInit{
  
  map! : Map;
  marker! :any;
  center = fromLonLat([5.5697, 50.6330]);
  iconFeature = new Feature({
    geometry : new Point(fromLonLat([5.5697, 50.6330]))
  })
  
  ngOnInit(): void {

    this.map = new Map({
      view : new View({
        center : this.center,
        zoom : 0
      }),
      layers : [

         new LayerVector({
          source : new SourceVector({
            features : [this.iconFeature]
          }),
          style : new Style({
            image : new Icon({
              anchor : [0.5, 46],
              src : '../assets/istockphoto-1153114937-2048x2048-removebg-preview.png'
            })
          })
         }),
         new TileLayer({
           source : new OSM()
         })
      ],
      target :  "map"
    })   
  }

}

P粉099145710P粉099145710424 Il y a quelques jours637

répondre à tous(1)je répondrai

  • P粉141911244

    P粉1419112442023-09-13 17:31:16

    peux-tu essayer cet exemple de code

    import { Map, View } from 'ol';
    import { Tile as TileLayer, Vector as LayerVector } from 'ol/layer';
    import { OSM, Vector as SourceVector } from 'ol/source';
    import Feature from 'ol/Feature';
    import Point from 'ol/geom/Point';
    import { fromLonLat } from 'ol/proj';
    import { Icon, Style } from 'ol/style';
    
    export class MapComponent implements OnInit{
      
      map!: Map;
      center = fromLonLat([5.5697, 50.6330]);
    
      ngOnInit(): void {
    
        const marker = new Feature({
          geometry: new Point(fromLonLat([5.5697, 50.6330]))
        });
    
        const markerLayer = new LayerVector({
          source: new SourceVector({
            features: [marker]
          }),
          style: new Style({
            image: new Icon({
              anchor: [0.5, 1],
              src: '../assets/istockphoto-1153114937-2048x2048-removebg-preview.png'
            })
          })
        });
    
        this.map = new Map({
          view: new View({
            center: this.center,
            zoom: 0
          }),
          layers: [
            new TileLayer({
              source: new OSM()
            }),
            markerLayer
          ],
          target: 'map'
        });
      }
    }

    répondre
    0
  • Annulerrépondre