2012-03-27 18 views
16

Recentemente sono stato assunto da una società GIS per riscrivere le loro vecchie librerie geomatiche. Quindi attualmente sto cercando una buona libreria di geometria computazionale. Ho visto CGAL, che è incredibile, ma il mio capo vuole qualcosa di gratuito.è Boost.Geometry abbastanza maturo?

Così ora sto controllando Boost.Geometry. Questa libreria sembra fantastica, ma sembra anche che stia cambiando abbastanza velocemente. Molte cose non sono ancora state implementate e sulla mailing list sono stati discussi molti problemi.

Quindi la mia domanda: Boost.Geometry è abbastanza maturo per poter creare qualcosa su di esso? O il design si evolverà ancora?

Grazie

+0

Penso che il disegno * * è abbastanza stabile quando una libreria avere accettato a spinta . non è vero? – CapelliC

+0

@chac Sì, si potrebbe pensare. Ma da quello che ho visto sembra che gli autori di questa lib pensi che le cose potrebbero essere migliori. Almeno questo è quello che capisco, forse mi sbaglio. Questo è il motivo per cui pongo questa domanda. – undu

+0

In "libero" intendi "gratis come nella birra"? CGAL è GPL e quindi molto "libero come in libertà";) – pmr

risposta

11

A seconda delle esigenze, si poteva guardare GEOS, che viene utilizzato da PostGIS per le sue operazioni di geometria, tra gli altri, ed è più maturo rispetto boost :: geometria. Tuttavia, è difficile estenderlo, cosa che dovrai fare da solo se desideri supportare più di semplici funzionalità.

Dove boost :: geometry brilla, a mio parere, è la sua capacità di adattarsi alle librerie esistenti (legacy), il che significa che dovresti essere in grado di mantenere alcune delle strutture dati del tuo datore di lavoro (o qualsiasi altra biblioteca geometrica esistente) e costruisci su di loro con boost :: geometry.

Boost :: geometria sta guadagnando maturità ed estese funzionalità piuttosto veloce, ma non credo che il design è cambiato molto rispetto all'anno scorso (quando è stato accettato nel boost). Vorrei chiedere sulla mailing list: gli autori sono molto attivi e disponibili.

+0

grazie per i chiarimenti. Ho visto GEOS e, come dici tu, sembra difficile estenderlo. Ma vedrò cosa posso fare :) – undu

+1

Se si desidera utilizzare una funzione che supporta boost :: geometry con una libreria di geometria esistente (legacy), ad es. leggi/scrivi le stringhe WKT o l'indice r-tree, puoi semplicemente adattare gli oggetti legacy per potenziare :: geometry, invece di dover creare oggetti intermediari (che è esattamente quello che devi fare con altre librerie, come GEOS, e questo costa molta memoria, e possibilmente CPU).Se non sei legato da oggetti legacy, questo non è un gran problema. – meastp

0

Dipende dalle vostre esigenze.

Boost è una delle librerie C++ più efficienti, performanti e mature, ma quando si tratta di geometrie geos è il migliore, ho provato entrambi in un progetto di ottimizzazione dei dati 3D.

Boost-Geometry Pro: -Performant -Bene progettato API

Geos Pro: -Accurate -Mature

Problemi correlati