क्या किसी के पास एक कामकाजी उदाहरण है जहां सेजियम (एनपीएम) के साथ SystemJS (वेबपैक नहीं) का उपयोग Angular2 (टाइपस्क्रिप्ट में, डार्ट नहीं) के साथ किया जा रहा है?काम करने के लिए सेसियम, सिस्टमजेएस, और कोणीय 2 प्राप्त करें?
मैं cesiumjs 'साइट पर इस ब्लॉग पोस्ट के बारे में पता कर रहा हूँ: https://cesiumjs.org/2016/01/26/Cesium-and-Webpack/
और मुझे पसंद है कैसे लेखक कहते हैं, "आप बस एक require('cesium')
नहीं कर सकते।" लेख के साथ समस्या यह है कि यह वेबपैक तरीके का उपयोग करता है, और मेरे पास यह उपलब्ध नहीं है।
किसी भी तरह से, मैं (ब्राउज़र से) इस विशेष त्रुटि को हल करने के लिए देख रहा हूँ: Error: (SystemJS) AMD module http://localhost:3000/node_modules/cesium/Build/CesiumUnminified/Cesium.js did not define
यहाँ मैं क्या है:
मेरी systemjs.config.js
फ़ाइल में:
paths: {'npm:' : 'node_modules/'},
map: {
// our app is within the dist folder
app: 'dist',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
...
'require': 'npm:requirejs/require.js',
'cesium': 'npm:cesium/Build/CesiumUnminified/Cesium.js',
// Other packages
...
}
@Injectable()
उदाहरण :
let Cesium = require('cesium');
import { Injectable } from '@angular/core';
@Injectable()
export class CesiumClock {
private _start:any = Cesium.JulianDate.now();
private _stop:any = Cesium.JulianDate.addHours(this._start,12,new Cesium.JulianDate());
private _clock:any = new Cesium.Clock({
startTime: this._start,
stopTime: this._stop,
currentTime: this._start,
clockRange: Cesium.ClockRange.LOOP_STOP,
mutliplier: 1,
shouldAnimate: true
});
}
,210
और अंत में, ग्राहक कोड मेरे 'CesiumClock' का उपयोग करने की कोशिश करता है, और मुझे ब्राउज़र में त्रुटि देता है (transpiling के बाद) है कि:
import { Component } from '@angular/core';
import { CesiumClock } from '../services/index';
@Component({
moduleId: module.id.replace("/dist", "/app"),
templateUrl: 'stuff.component.html',
styleUrls: [
'stuff.css',
'node_modules/cesium/Build/Cesium/Widgets/widgets.css'
]
})
export class StuffComponent {
constructor(private _cesiumClock:CesiumClock) {}
}
अद्यतन:
@artem
के आधार पर उत्तर, मैं ब्राउज़र से विशिष्ट 'त्रुटि: (SystemJS) AMD' को हटाने में सक्षम था। लेकिन अब, अगर मैं सीज़ियम को संदर्भित करना चाहता हूं, तो new Cesium.Viewer(...)
Cesium
ऑब्जेक्ट केवल एक खाली स्लेट है। त्रुटि मैं देख रहा हूँ इस पर मेरी आँखों को खोलने के लिए @artem है
Cesium.Viewer is not a constructor
मेरे लिए काम अभी नहीं: -/मैं त्रुटि 'मिलता है अपवाद: अनचाहे (वादे में): त्रुटि: त्रुटि: 0: 0 के कारण: बाध्यकारी संसाधित करने में असमर्थ "क्लिक: फ़ंक्शन() {वापसी फ़ंक्शन() {cameraClicked.raiseEvent (यह);}}" संदेश: n (...)। बाइंडफ़ंक्शन नहीं हैTypeError: बाइंडिंग को संसाधित करने में असमर्थ "क्लिक करें: फ़ंक्शन() {रिटर्न फ़ंक्शन() {cameraClicked.raiseEvent (यह);}}" संदेश: n (...)। बाइंड कोई फ़ंक्शन नहीं है 'कोई विचार? – mfreiholz
@mfreiholz - मुझे लगता है कि आपके पास एक अलग सवाल हो सकता है। मैं एक प्रश्न पोस्ट करूंगा, और यदि आपको लगता है कि इससे मदद मिलेगी, तो इसे अपने सेटअप के संबंध में लिंक करें? यदि हमारे प्रश्न डुप्लिकेट हैं, तो कोई निश्चित रूप से इसे नोट करेगा। – westandy