Ошибка листовки при загрузке шейп-файла (shp не определен) - PullRequest
0 голосов
/ 17 февраля 2020

Я следую за Книгой * Leaflet о том, как загружать шейп-файлы. Инструкции книги:

Сначала добавьте ссылки на два JavaScript файла. Первый, leaflet-shpfile, является плагином, а второй зависит от парсера shapefile, shp. js:

<script src="leaflet.shpfile.js">
</script><script src="shp.js"></script>

Затем создайте новый слой shapefile и добавьте это к карте. Передайте путь слоя в сжатый шейп-файл:

var shpfile = new L.Shapefile('council.zip');
shpfile.addTo(map);

Я следовал приведенным выше инструкциям с небольшими изменениями, так как я нахожусь в Webpack. Вот что я сделал:

  1. установлен shpjs с npm i shpjs --S
  2. скачан leaflet.shpfile.js с github и помещен в src/
  3. в моем файле *.js мне требуются shpjs и leaflet.shpfile.js со следующим кодом:

const shp=require('shpjs');
require('./leaflet.shpfile.js');

Затем я получаю доступ к шейп-файлу в соответствии с инструкциями:

console.log(shp);
const shapeFileLayer = L.shapefile(someURL);

В последней строке кода я получаю следующую трассировку:

react-dom.production.min.js:196 ReferenceError: shp is not defined
    at NewClass.addFileData (leaflet.shpfile.js:38)
    at NewClass.initialize (leaflet.shpfile.js:25)
    at new NewClass (leaflet-src.js:300)
    at Object.L.shapefile (leaflet.shpfile.js:67)
    at Map.createLayerGroups (main.js_+_3_modules:342)
    at Map.componentDidMount (main.js_+_3_modules:186)
    at ik (react-dom.production.min.js:251)
    at exports.unstable_runWithPriority (scheduler.production.min.js:18)
    at fg (react-dom.production.min.js:120)
    at Yj (react-dom.production.min.js:244)

Оператор console.log в строке, приведенной выше, завершается успешно, показывая, что определенная функция shp определена. Поэтому я не могу объяснить, почему я получаю справочную ошибку shp is not defined в строке, следующей за следующей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...