#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>);