464 |
464 |
* edges for both Geometries
|
465 |
465 |
*/
|
466 |
466 |
private void computeLabelling() {
|
467 |
|
graph.dump();
|
468 |
467 |
for (Iterator nodeit = graph.getNodes().iterator(); nodeit.hasNext();) {
|
469 |
468 |
Node node = (Node) nodeit.next();
|
470 |
469 |
node.getEdges().computeLabelling(arg);
|
... | ... | |
472 |
471 |
mergeSymLabels();
|
473 |
472 |
updateNodeLabelling();
|
474 |
473 |
|
475 |
|
// graph.dump();
|
476 |
474 |
}
|
477 |
475 |
|
478 |
476 |
/**
|
... | ... | |
485 |
483 |
for (Iterator nodeit = graph.getNodes().iterator(); nodeit.hasNext();) {
|
486 |
484 |
Node node = (Node) nodeit.next();
|
487 |
485 |
((DirectedEdgeStar) node.getEdges()).mergeSymLabels();
|
488 |
|
// node.print(System.out);
|
489 |
486 |
}
|
490 |
487 |
}
|
491 |
488 |
|
... | ... | |
529 |
526 |
// now update the labelling for the DirectedEdges incident on this
|
530 |
527 |
// node
|
531 |
528 |
((DirectedEdgeStar) n.getEdges()).updateLabelling(label);
|
532 |
|
// n.print(System.out);
|
533 |
529 |
}
|
534 |
530 |
}
|
535 |
531 |
|
... | ... | |
646 |
642 |
try {
|
647 |
643 |
|
648 |
644 |
//Snap en un extremo y en un vertice intermedio
|
649 |
|
// a = reader.read("LINESTRING(0.001 0.001, 5.001 5.001)");
|
650 |
|
// b = reader.read("LINESTRING(2.1 -3, 0.0 -0.001, -2.22 4.88, 10.0 10.0, 5.002 5.002)");
|
651 |
|
// System.out.println(SnappingOverlayOperation.overlayOp(a, b, OverlayOp.INTERSECTION, 0.01));
|
652 |
|
//
|
|
645 |
a = reader.read("LINESTRING(0.001 0.001, 5.001 5.001)");
|
|
646 |
b = reader.read("LINESTRING(2.1 -3, 0.0 -0.001, -2.22 4.88, 10.0 10.0, 5.002 5.002)");
|
|
647 |
System.out.println(SnappingOverlayOperation.overlayOp(a, b, OverlayOp.INTERSECTION, 0.01));
|
653 |
648 |
// //snap mediante l?neas paralelas
|
654 |
|
// c = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
|
655 |
|
// d = reader.read("LINESTRING(0.001 0.01, 5.001 0.002, 10.001 0.002)");
|
656 |
|
//
|
657 |
|
// long t0 = System.currentTimeMillis();
|
658 |
|
// System.out.println(SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1));
|
659 |
|
//
|
660 |
|
//
|
661 |
|
//
|
662 |
|
//
|
663 |
|
// long t1 = System.currentTimeMillis();
|
664 |
|
// System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
|
665 |
|
// long t2 = System.currentTimeMillis();
|
666 |
|
// System.out.println("Con snap: "+(t1-t0)+" ms");
|
667 |
|
// System.out.println("Sin snap: "+(t2-t1)+" ms");
|
668 |
|
//
|
669 |
|
// d = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
|
670 |
|
// System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
|
|
649 |
c = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
|
|
650 |
d = reader.read("LINESTRING(0.001 0.01, 5.001 0.002, 10.001 0.002)");
|
|
651 |
long t0 = System.currentTimeMillis();
|
|
652 |
System.out.println(SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1));
|
|
653 |
long t1 = System.currentTimeMillis();
|
|
654 |
System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
|
|
655 |
long t2 = System.currentTimeMillis();
|
|
656 |
System.out.println("Con snap: "+(t1-t0)+" ms");
|
|
657 |
System.out.println("Sin snap: "+(t2-t1)+" ms");
|
671 |
658 |
|
|
659 |
d = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
|
|
660 |
System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
|
|
661 |
|
672 |
662 |
//lineas paralelas a una distancia superior a la de snap
|
673 |
663 |
//(para comprobar el criterio de paralelismo en LineIntersector
|
674 |
|
// c = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
|
675 |
|
// d = reader.read("LINESTRING(0 0.11, 5 0.12, 10 0.14)");
|
676 |
|
// System.out.println(SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.001));
|
|
664 |
c = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
|
|
665 |
d = reader.read("LINESTRING(0 0.11, 5 0.12, 10 0.14)");
|
|
666 |
System.out.println(SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.001));
|
677 |
667 |
//
|
678 |
|
// c = reader.read("LINESTRING(1 0, 3 2)");
|
679 |
|
// d = reader.read("LINESTRING(3.05 2.01, 5 1.25, 0.25 1.75)");
|
680 |
|
// System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
|
681 |
|
// System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
|
|
668 |
c = reader.read("LINESTRING(1 0, 3 2)");
|
|
669 |
d = reader.read("LINESTRING(3.05 2.01, 5 1.25, 0.25 1.75)");
|
|
670 |
System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
|
|
671 |
System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
|
682 |
672 |
//
|
683 |
673 |
//
|
684 |
|
// d = reader.read("LINESTRING(3 2, 5 1.25, 0.25 1.75)");
|
685 |
|
// System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
|
686 |
|
// System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
|
|
674 |
d = reader.read("LINESTRING(3 2, 5 1.25, 0.25 1.75)");
|
|
675 |
System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
|
|
676 |
System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
|
687 |
677 |
|
688 |
678 |
//Que un pol?gono est? cerrado o no no es snap, sino regla topologica
|
689 |
679 |
|
... | ... | |
716 |
706 |
System.out.println(d.toText());
|
717 |
707 |
System.exit(-2);
|
718 |
708 |
}
|
719 |
|
|
720 |
|
|
721 |
|
|
722 |
|
// c = reader.read("LINESTRING (-0.01 0, 6 6)");
|
723 |
|
// d = reader.read("LINESTRING (0 0, 5 0, 5 5, 0 5)");
|
|
709 |
|
724 |
710 |
System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
|
|
711 |
|
|
712 |
Geometry pol1 = reader.read("POLYGON((0 0, -5 0, -10 5, 0 10, 10 5, 5 0, 0 0))");
|
|
713 |
Geometry pol2 = reader.read("POLYGON((10.01 0, 5 5, 5 10, 10 10, 10.01 0))");
|
725 |
714 |
|
|
715 |
System.out.println((SnappingOverlayOperation.overlayOp(pol1, pol2, OverlayOp.INTERSECTION, 0.1)));
|
|
716 |
System.out.println((OverlayOp.overlayOp(pol1, pol2, OverlayOp.INTERSECTION)));
|
726 |
717 |
|
727 |
718 |
|
728 |
|
|
729 |
719 |
} catch (ParseException e) {
|
730 |
720 |
e.printStackTrace();
|
731 |
721 |
}
|