2017-07-02 12 views
7

मैं एक openlayers 3 परियोजना पर काम कर रहा हूँ, टाइपप्रति का उपयोग कर, इसलिए विकसित:एकीकृत करने के लिए कैसे openlayers 3 विस्तार को बदलने

let ol = require("openlayers"); 

मैं उपयोग करना चाहते हैं विस्तार प्लगइन है, जो NPM पर प्रकाशित नहीं किया गया है को बदलने (http://viglino.github.io/ol3-ext/interaction/transforminteraction.js

निम्न त्रुटियों
let ol = require("openlayers"); 
require("<path>/ol/transforminteraction"); 

हालांकि मैं:

)

मैं निम्नलिखित की कोशिश की 10

ERROR TypeError: ol.interaction.Transform is not a constructor

और

Uncaught ReferenceError: ol is not defined

कैसे मैं/इस संसाधन को सही ढंग से एकीकृत शामिल कर रहा हूँ?

उत्तर

3
let ol = require("openlayers"); 

इसका मतलब यह है ol वैश्विक क्षेत्र में नहीं है, इसलिए यह विस्तार करने के लिए transforminteraction लिए उपलब्ध नहीं है।

प्लगइन कोड को देखते हुए, आप एक

module.exports = function(ol) { 
    ... 
} 

इस समारोह दायरे में ol डालता में लपेट में सक्षम होना चाहिए।

फिर आप इसका विस्तार करने के लिए ol में गुजरकर इसका उपयोग कर सकते हैं। जैसे

let ol = require("openlayers"); 
require("<path>/ol/transforminteraction")(ol); 
0

आप एक अलग फ़ाइल में "transforminteraction.js" कोड शामिल कर सकते हैं जिसे ब्राउज़र HTML दस्तावेज़ के साथ डाउनलोड करेगा। एचटीएमएल फ़ाइल से जेएस कोड काट लें, और इसे अपने "transforminteraction.js" फ़ाइल में पेस्ट करें, window.onload = function() { ...your code js + transforminteraction.js } को न भूलें। यह भी जांच:

OL3-ext का क्लोन भंडार: https://github.com/Viglino/ol3-ext

या:

https://github.com/Rep1ay/openLayer.git

संबंधित मुद्दे