OpenLayers 4 степени. расширить замену

#angular #typescript #openlayers #openlayers-3 #openlayers-5

#angular #typescript #openlayers #openlayers-3 #openlayers-5

Вопрос:

Я переношу код с OpenLayers 3 на OpenLayers 4 (typescript)

У меня был этот фрагмент кода, который расширил бы мой экстент, чтобы все векторные фигуры, которые я нарисовал, были видны при загрузке карты…

 angular.forEach(webMapValues.vectorFieldLayer, function (Field, key) 
{
webMapValues.mapObj.addLayer(Field);
webMapValues.extent = Field.getSource().getExtent();
webMapValues.totalExtent = ol.extent.extend(webMapValues.extent, 
webMapValues.totalExtent);
})
  

в приведенном выше «ol.extent.extend» совершил волшебство для меня и в OpenLayers 4 (typescript) Я не смог найти эквивалент?

Любая помощь приветствуется!

Ответ №1:

я полагаю, что функция все еще существует, изменился только синтаксис:

 import {extend} from 'ol/extent';

const largeExtent = extend(extent1, extent2);
  

Комментарии:

1. Я в замешательстве… Я не увидел «extend» в «ol / extent», поэтому я снова установил npm «ol», чтобы посмотреть, возможно, была обновленная версия… есть «ol@5.3.1 » но у меня нет «extend» как функции внутри «ol / extent». У меня есть «угол» и «взаимосвязь»? Есть идеи о том, какую версию мне следует использовать?

2. я тоже в замешательстве … я только что попробовал ol.extent.extend (extend1, extend2) с ol 5.3.0 из руководства по быстрому запуску, кажется, все работает так, как задумано openlayers.org/en/latest/doc/quickstart.html

3. Хорошо, я думаю, дело в том, как это импортируется. В node_modules у меня есть папка ol, а под ней у меня есть папка с именем «extent», а также файл .js с именем «extent.js «если я импортирую «ol / extent», он указывает на папку … не уверен, как заставить его указывать на файл .js … может быть, просто добавить «.js»?

4. вы все еще получаете ошибку, также при импорте? extend больше не является методом расширения, это более или менее автономная функция

5. Я не могу понять, как использовать extent.js файл

Ответ №2:

Я использую React, typescript и OL4 и обнаружил, что это работает для меня

 import extent from 'ol/extent';

const combinedExtent = extent.extend(<layer1>,<layer2>);