В OpenLayers 5.3.0 я создал MultiPolygon, используя инструмент разности в turf.js. Turf.js MultiPolygon выглядит хорошо, когда я изучаю JSON, но когда я пытаюсь использовать это для создания функции в OpenLayers, я получаю «Uncaught TypeError: t.addEventListener не является функцией».
I 'Я пробовал много комбинаций JSON.stringify, JSON.parse, GeoJSON.readFeatures, .getCoordinates () ... Я пытался добавить Turf.js MultiPolygon как функцию напрямую через source.addFeature(multiPolygonGeometry)
, но затем я получаю 'Uncaught TypeError: e.getId не является функцией '. Я также попытался source.addFeatures(multiPolygonGeometry)
(обратите внимание на множественное число 'addFeatures'), и это не дало мне никаких ошибок, но также, похоже, не добавило ничего к источнику.
Соответствующие строки в моем кодеследующим образом:
multiPolygonGeometry = turf.difference(largeArea,maskAreas);
multiPolygonFeature = new ol.Feature({
geometry: multiPolygonGeometry,
id: 'multiPolygonFeature1'
});
multiPolygonGeometry выглядит так в консоли:
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
140.9716711384525,
-36.97645228850101
],
[
140.97418321565786,
-36.97679331852701
],
[
140.9741163253784,
-36.97713531664132
],
[
140.9740304946899,
-36.97903805606076
],
[
140.97437381744382,
-36.98025509866784
],
[
140.97594864874696,
-36.98127512642501
],
[
140.9714880598484,
-36.9804459718428
],
[
140.9714500775476,
-36.97642733756345
],
[
140.9716711384525,
-36.97645228850101
]
]
],
[
[
[
140.97455248763328,
-36.97684309230892
],
[
140.97751071844857,
-36.97723786980259
],
[
140.97749308140382,
-36.977304276099005
],
[
140.97715289421623,
-36.97770848336402
],
[
140.97661807025068,
-36.97969050789806
],
[
140.97628355026242,
-36.97958658471583
],
[
140.97634792327878,
-36.97900377288852
],
[
140.9764981269836,
-36.97866094031662
],
[
140.97510337829587,
-36.97727245260485
],
[
140.97455248763328,
-36.97684309230892
]
]
],
[
[
[
140.97628420893903,
-36.98092777726751
],
[
140.97617893060388,
-36.98131793226549
],
[
140.97596635572492,
-36.98127841787872
],
[
140.97628420893903,
-36.98092777726751
]
]
]
]
},
"ol_lm": {
"change": []
}
}
И тогда я получаю это сообщение:
events.js:174 Uncaught TypeError: t.addEventListener is not a function
at v (events.js:174)
at e.handleGeometryChanged_ (Feature.js:210)
at e (events.js:41)
at e.dispatchEvent (Target.js:101)
at e.notify (Object.js:151)
at e.set (Object.js:170)
at e.setProperties (Object.js:186)
at new e (Feature.js:108)
at getPolygon (maskedPolygon.js:319) <-- this is the second line in my code sample above
at <anonymous>:1:1
Что я делаю неправильноВот? Я уверен, что это что-то простое, но я просто не могу это взломать.