Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions demo/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import './coordinates';
import './polygoncontrol';
import './booleanopcontrol';
import * as martinez from '../../index';
//var martinez = require('../../dist/martinez.min');
// import * as martinez from '../../dist/martinez.min';

let mode = window.location.hash.substring(1);
let path = '../test/fixtures/';
Expand Down Expand Up @@ -127,35 +127,42 @@ map.addControl(new L.BooleanControl({
}));

var drawnItems = window.drawnItems = L.geoJson().addTo(map);

var rawData = null;
function loadData(path) {
console.log(path);
fetch(path)
.then((r) => r.json())
.then((json) => {
drawnItems.addData(json);
rawData = json;
map.fitBounds(drawnItems.getBounds().pad(0.05), { animate: false });
});
}

function clear() {
drawnItems.clearLayers();
results.clearLayers();
rawData = null;
}

var reader = new jsts.io.GeoJSONReader();
var writer = new jsts.io.GeoJSONWriter();

function getClippingPoly (layers) {
if (rawData !== null && rawData.features.length > 1) return rawData.features[1];
return layers[1].toGeoJSON();
}

function run (op) {
var layers = drawnItems.getLayers();
if (layers.length < 2) return;
var subject = layers[0].toGeoJSON();
var clipping = layers[1].toGeoJSON();
var subject = rawData !== null ? rawData.features[0] : layers[0].toGeoJSON();
var clipping = getClippingPoly(layers);

//console.log('input', subject, clipping, op);

subject = JSON.parse(JSON.stringify(subject));
clipping = JSON.parse(JSON.stringify(clipping));
// subject = JSON.parse(JSON.stringify(subject));
// clipping = JSON.parse(JSON.stringify(clipping));

var operation;
if (op === OPERATIONS.INTERSECTION) {
Expand All @@ -178,9 +185,8 @@ function run (op) {
var result = operation(subject.geometry.coordinates, clipping.geometry.coordinates);
console.timeEnd('martinez');

//if (op === OPERATIONS.UNION) result = result[0];
console.log('result', result);
// console.log(JSON.stringify(result))
// console.log(JSON.stringify(result));
results.clearLayers();

if (result !== null) {
Expand Down Expand Up @@ -208,17 +214,11 @@ function run (op) {
}
res = writer.write(res);
console.timeEnd('jsts');
console.log(res);
// console.log('JSTS result', res);
}, 500);
}
}

//drawnItems.addData(oneInside);
//drawnItems.addData(twoPointedTriangles);
//drawnItems.addData(selfIntersecting);
//drawnItems.addData(holes);
//drawnItems.addData(data);

map.on('editable:created', function(evt) {
drawnItems.addLayer(evt.layer);
evt.layer.on('click', function(e) {
Expand Down