9
votes

Rectangle de bordure minimal avec JTS

J'ai une collection d'objets de géométrie. Maintenant, je veux calculer le rectangle de liaison minimal de toute la collection. J'utilise la suite de topologie Java, mais je ne peux pas comprendre comment faire cela?


0 commentaires

3 Réponses :


1
votes

Je n'ai jamais utilisé JTS, mais googled this:

Itéréter par la collecte et pour chaque appel d'objet getboundary (). getenvelopeInternal ()


4 commentaires

HM, quel terme avez-vous googlé? Pouvez-vous s'il vous plaît me donner le lien?


Dans la documentation officielle: Vividsolutions.com/jts/jtshome.htm , géométrie et classes d'enveloppe .


Ce n'est pas la documentation officielle. Vividsolution n'est pas le responsable de la dernière version JTS.


Méfiez-vous que getenvelopeInternal () ignorera le modèle de précision de votre géométrie.




2
votes

Je viens de mettre l'une ensemble comme ça.

La classe de géométrie a une "getenvelopeInternal ()" qui retourne l'enveloppe inscrite, mais "getenvelope () 'vient de retourner une autre géométrie. P>

Au Javadoc, il semble que l'objet de géométrie retourné soit soit: P>

  1. Un point vide correspondant à un objet géométrie vide. li>
  2. un point unique, correspondant au point passé. Li>
  3. un polygone avec 4 coordonnées qui spécifie l'enveloppe entourant. li> ol>

    regarder d'autres notes sur l'enveloppe, je vois que vous pouvez «développer» l'enveloppe .... Alors voici l'util statique que j'ai construit pour convertir: P>

    public static Envelope enclosingEnvelopFromGeometry(Geometry geometry) {
        final Envelope envelope = new Envelope();
        final Geometry enclosingGeometry = geometry.getEnvelope();
        final Coordinate[] enclosingCoordinates = enclosingGeometry.getCoordinates();
        for (Coordinate c : enclosingCoordinates) {
            envelope.expandToInclude(c);
        }
        return envelope;
    } 
    


0 commentaires