OpenLayers3 ol.interaction.Draw
을 사용하여 정점을 클릭하거나 자유형 다각형을 그리려면 Shift + Drag로지도에 도형을 그릴 수 있습니다. 내 응용 프로그램에). 일단 모양이 그려지면 turf.js를 사용하여 그려진 모양을 클라이언트의 WFS 레이어와 비교하여 intersect()
을 실행하여 WFS 기능이 그려진 모양과 교차하는지 확인합니다. 그러나 손으로 그린 모양에 약간의 자체 교차점이있는 경우 turf.js intersect()
함수가 실패하여 다음 오류가 발생합니다 (줄 326은 intersect()
이라고합니다).turf.js OpenLayers3에서 자체 교차 폴리곤에 대한 교차 오류 Draw
turf.min.js 9 catch되지 [개체 개체]
getResultGeometry @ turf.min.js 9
si.overlayOp turf.min.js @ 9
교차 @ turf.min. JS : turf.min.js @ 15
e.exports : 16
(익명 함수) main.js @ 326
따릅니다 내 코드의 스케치입니다.
var features = new ol.Collection();
var vs = new ol.source.Vector({
format: new ol.format.GeoJSON(),
url: function(extent) {
return XXXXXX;
},
strategy: ol.loadingstrategy.bbox
});
features.on('add', function() {
vs.forEachFeatureIntersectingExtent(extent, function(feature) {
// use to turf.js to intersect each feature with drawn feature
var bt = gjformat.writeFeatureObject(feature, {rightHanded: false});
var dt = gjformat.writeFeatureObject(features.item(0), {rightHanded: false});
var intersection = turf.intersect(bt, dt);
}
});
나는 아무 소용이 모두 turf.js simplify()
및 ol.geom.Geometry.simplify()
를 사용하는 것을 시도했다. 누구든지 손으로 그린 자기 교차 폴리곤을 처리하기 위해 turf.js intersect()
을 얻으려는 제안이 있습니까? 또는 교차로를 실행하기 전에 자기 교차로를 제거하는 방법?
Turfjs는 방법이있다 [꼬임() (http://turfjs.org/docs/#kinks) 자기 교차점을 검출하므로 I가 또 다른 라이브러리로 이동하지 않아도 자기 교차 폴리곤을 버퍼링하는 방법을 살펴 보겠습니다. –