2017-07-02 31 views
7

Ja pracuje na OpenLayers 3 projektu, opracowane przy użyciu maszynopis, stąd:Jak zintegrować OpenLayers 3 przekształcić przedłużenie

let ol = require("openlayers"); 

Chciałbym użyć transformacji wtyczki przedłużacza, który nie został opublikowany na NPM (http://viglino.github.io/ol3-ext/interaction/transforminteraction.js)

próbowałem następujące:

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

jednak uzyskać następujące błędy:

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

i

Uncaught ReferenceError: ol is not defined

Jak jestem w stanie include/poprawnie zintegrować ten zasób?

Odpowiedz

3
let ol = require("openlayers"); 

Oznacza to ol nie jest w zasięgu globalnym, dlatego nie jest dostępna do transforminteraction przedłużyć.

Patrząc na kod wtyczki, powinieneś być w stanie owinąć go w

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

Stawia ol do zakresu funkcji.

Następnie można go użyć, przekazując w ol jako argument, aby go przedłużyć. na przykład

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

Możesz dołączyć kod "transforminteraction.js" do osobnego pliku, który przeglądarka pobierze razem z dokumentem HTML. Wytnij kod JS z pliku html i wklej go do pliku "transforminteraction.js" , nie zapomnij o window.onload = function() { ...your code js + transforminteraction.js }. Sprawdź również:

repozytorium Klon OL3-ext: https://github.com/Viglino/ol3-ext

czyli

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