Πώς να μετρήσει τη συνολική επιφάνεια της λίμνης σε μια Atlas

ψήφοι
0

Μόλις έχω φορτωθεί ένα Atlas αντικείμενο στη μνήμη, ποιος είναι ο καλύτερος τρόπος για να μετρήσει τη συνολική έκταση της λίμνης; Κάνοντας μια απλή αναζήτηση ετικέτα βρίσκει όλες τις απλές Areaλίμνες, αλλά μου λείπει όλες τις λίμνες με βάση τον τύπο = multipolygon Relationsπου είναι χτισμένο σε «εξωτερικό» τρόποι με τους οποίους, ραμμένες μαζί, κάνουν μια πλήρη λίμνη.

Δημοσιεύθηκε 07/11/2018 στις 23:43
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Atlas έρχεται με μια ComplexEntityέννοια που επιτρέπει στο χρήστη να κατασκευάσει οντότητες υψηλότερου επιπέδου με βάση συγκεκριμένες έννοιες. Το ComplexWaterEntityαντικείμενο πρέπει να ταιριάζει σε αυτή την ανάγκη:

Atlas atlas;
Iterable<ComplexWaterEntity> waterEntities =
    new ComplexWaterEntityFinder().find(atlas);

// Get all water bodies and keep lakes only.
// This will include the multipolygon ones.
Iterable<ComplexWaterBody> lakes = Iterables.stream(waterEntities)
    .filter(entity -> WaterType.LAKE == entity.getWaterType())
    .map(entity -> (ComplexWaterBody) entity);

// Add all the surface areas
Surface result = Surface.MINIMUM;
for (ComplexWaterBody lake : lakes)
{
    result = result.add(lake.getGeometry().getSurface()));
}
System.out.println(result.asKilometerSquared());
Απαντήθηκε 07/11/2018 στις 23:43
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more