2017-08-18 28 views
5

मैं इस तरह मेरे कोणीय 2/4 अनुप्रयोग में मॉड्यूल का आयात कर रहा हूँ:एंगुलर 2/4 में मैपबॉक्स-ग्ल-ड्रॉ कैसे आयात करें?

import { MapboxDraw } from '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw'; 

और इस तरह घटकों में से एक में इसका उपयोग करने:

var draw = new MapboxDraw({ 
    displayControlsDefault: false, 
    controls: { 
    polygon: true, 
    trash: true 
    } 
}); 

map.addControl(draw); 

लेकिन मुझे एक त्रुटि जब मैं हो रही है पृष्ठ खोलें:

ERROR TypeError: __WEBPACK_IMPORTED_MODULE_4__mapbox_mapbox_gl_draw_dist_mapbox_gl_draw__.MapboxDraw is not a constructor 

मैपबॉक्स-ग्ल-ड्रा आयात करने का सबसे अच्छा तरीका क्या है?

+0

जांच इस [कड़ी] (https में npm install @mapbox/mapbox-gl-draw

जोड़ा सीएसएस स्थापित की है। कॉम/पैकेज/कोणीय 2-मैपबॉक्स) –

+0

मदद कर सकता है हाय राहुल, मैं काम करने के लिए मैपबॉक्स-ग्लू प्राप्त करने में कामयाब रहा लेकिन मैं मैपबॉक्स-ड्रा-ग्ल के लिए ऐसा नहीं कह सकता। –

उत्तर

2

यह है कि मेरे मशीन पर काम करता है एक न्यूनतम उदाहरण अनुप्रयोग है: यह 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>

ध्यान दें कि मैं 'mapbox-gl-draw' बजाय '@mapbox/mapbox-gl-draw' उपयोग कर रहा हूँ। तो आप npm install mapbox-gl-draw के माध्यम से इस पैकेज को स्थापित करने का प्रयास करना चाहेंगे। मैंने बाद में कोशिश की लेकिन यह मेरे लिए एक त्रुटि फेंकता है। आवश्यक नक्शाबॉक्स-ग्ल-ड्रा सीएसएस जोड़ने के लिए भी मत भूलना। //www.npmjs:

+0

हाय, मैंने आवश्यकता फ़ंक्शन का उपयोग करने की कोशिश की लेकिन दुर्भाग्यवश यह काम नहीं करता क्योंकि मुझे लगता है कि यह इस तथ्य से है कि यह एक कोणीय 2 ऐप है। –

+0

@AfeezAziz मेरे उत्तर में कहा गया है कि आपको '@ mapbox/mapbox-gl-draw' से 'आयात {MapboxDraw} का उपयोग करना चाहिए;' और इसकी आवश्यकता नहीं है। महत्वपूर्ण हिस्सा यह है कि पथ आपके शुरुआती व्यक्ति से अलग है। –

+0

हाय, अगर ऐसा है, तो यह दुर्भाग्यवश काम नहीं करता है। ''मैपबॉक्स/मैपबॉक्स-ग्ल-ड्रा' का परिवर्तन;' to ''मैपबॉक्स/मैपबॉक्स-ग्ल-ड्रा/डिस्ट/मैपबॉक्स-ग्ल-ड्रा'; 'क्योंकि मैं मैपबॉक्स-ग्ल के लिए निर्देश का पालन कर रहा था काम करता है। –

1

मैं कोणीय cli.json

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

घटक

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); 
    } 
} 
संबंधित मुद्दे