How to import mapbox-gl-draw into Angular 2/4? How to import mapbox-gl-draw into Angular 2/4? angular angular

How to import mapbox-gl-draw into Angular 2/4?


This is a minimal example app that works on my machine: It is based on this little project on github: https://github.com/haoliangyu/ngx-mapboxgl-starter

import { Component } from '@angular/core';import * as mapboxgl from 'mapbox-gl';import * as MapboxDraw from 'mapbox-gl-draw';@Component({  selector: 'app-root',  templateUrl: './app.component.html',  styleUrls: ['./app.component.css']})export class AppComponent {  ngOnInit() {    mapboxgl.accessToken = 'your Token';    let map = new mapboxgl.Map({      container: 'map',      style: 'mapbox://styles/mapbox/light-v9',      zoom: 5,      center: [-78.880453, 42.897852]    });    let Draw = new MapboxDraw();    map.addControl(Draw)    map.on('load', function() {      // ALL YOUR APPLICATION CODE    });  }}
#map {  width: 500px;  height: 500px;}
<div id='map'></div>

Note that I am using 'mapbox-gl-draw' instead of '@mapbox/mapbox-gl-draw'. So you might wanna try installing this package via npm install mapbox-gl-draw. I tried the later one but this throws an error for me. Also don't forget to add the required mapbox-gl-draw CSS.


i have install npm install @mapbox/mapbox-gl-draw

added css into angular-cli.json

"../node_modules/@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css",

Component

import { Component } from '@angular/core';import * as mapboxgl from 'mapbox-gl';import * as MapboxDraw from '@mapbox/mapbox-gl-draw';@Component({  selector: 'app-root',  templateUrl: './app.component.html',  styleUrls: ['./app.component.css']})export class AppComponent {  static t;  ngOnInit() {    mapboxgl.accessToken = 'Token';    AppComponent.t.map= new mapboxgl.Map({      container: 'map',      style: 'mapbox://styles/mapbox/light-v9',      zoom: 5,      center: [-78.880453, 42.897852]    });     const draw = new MapboxDraw({        displayControlsDefault: false,        controls: {            polygon: true,            trash: true        }    });    AppComponent.t.map.addControl(draw);  }}