首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将mapbox-gl-draw导入Angular 2/4?

如何将mapbox-gl-draw导入Angular 2/4?
EN

Stack Overflow用户
提问于 2017-08-18 13:12:20
回答 3查看 4.7K关注 0票数 8

我将模块导入到我的Angular 2/4应用程序中,如下所示:

代码语言:javascript
复制
import { MapboxDraw } from '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw';

在其中一个组件中使用它,如下所示:

代码语言:javascript
复制
var draw = new MapboxDraw({
   displayControlsDefault: false,
   controls: {
     polygon: true,
     trash: true
   }
});

map.addControl(draw);

但是当我打开页面时,我得到了一个错误:

代码语言:javascript
复制
ERROR TypeError: __WEBPACK_IMPORTED_MODULE_4__mapbox_mapbox_gl_draw_dist_mapbox_gl_draw__.MapboxDraw is not a constructor

导入mapbox-gl-draw的最佳方式是什么?

EN

回答 3

Stack Overflow用户

发布于 2017-08-18 19:42:47

这是一个在我的机器上运行的最小示例应用程序:它基于github上的这个小项目:https://github.com/haoliangyu/ngx-mapboxgl-starter

代码语言:javascript
复制
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
    });
  }
}
代码语言:javascript
复制
#map {
  width: 500px;
  height: 500px;
}
代码语言:javascript
复制
<div id='map'></div>

请注意,我使用的是'mapbox-gl-draw'而不是'@mapbox/mapbox-gl-draw'。所以你可能想试着通过npm install mapbox-gl-draw安装这个包。我尝试了后一个,但这为我抛出了一个错误。另外,不要忘记添加所需的mapbox-gl-draw。

票数 7
EN

Stack Overflow用户

发布于 2017-11-22 19:20:42

我已经安装了npm install @mapbox/mapbox-gl-draw

将css添加到angular-cli.json中

代码语言:javascript
复制
"../node_modules/@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css",

组件

代码语言:javascript
复制
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);
  }
}
票数 3
EN

Stack Overflow用户

发布于 2021-12-24 10:05:48

使用以下命令安装依赖项:

npm i--保存-开发@类型/mapbox__mapbox-gl-绘图

将以下导入添加到您的组件中:

从‘@mapbox/mapbox-gl- MapboxDraw’导入*作为绘图;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45748965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档