Domanda

Stiamo cercando di mostrare una mappa con un gran numero di punti (che vanno da 1000 a 20000 a seconda dei criteri degli utenti) utilizzando OpenLayers e Geoserver. I punti sono archiviati in un database PostgreSQL.

Mentre l'applicazione sembra avere pochi problemi a visualizzare l'intervallo inferiore, il suo limite pratico sembra essere di circa 5000 punti. Anche la SLD che stiamo applicando è enorme (elencando tutti i punti individualmente per criteri che non sono l'ID funzionalità). A numeri più elevati, l'immagine non è garantita per essere restituita e la richiesta a volte si arresta in modo anomalo a Geoserver, richiedendo il ripristino del servizio.

Qualcuno sa se una cosa del genere è fattibile e, in tal caso, di qualche consiglio di configurazione?

Abbiamo applicato un indice BTREE sul campo utilizzato per il filtraggio.

È stato utile?

Soluzione

Che tipo di livello aggiungi agli openlayer? È possibile utilizzare un livello WMS anziché avere i punti come caratteristiche vettoriali:

http://dev.openlayers.org/docs/files/openlayers/layer/wms-js.html

Geoserver avrebbe quindi generato un'immagine dei punti e avrebbe solo bisogno di passare un PNG di JPEG di alcuni KB piuttosto che di informazioni di geometria e stile che sarebbe molto più grande. Però perderesti alcune delle funzionalità sul lato client (eventi del mouse ecc.)

Se lo stai già facendo, allora potrebbe esserci un problema separato. 5000 punti dovrebbero andare bene da gestire sul server.

In alternativa, potresti voler ripensare il modo in cui stai diplicando i punti. 5000 punti contemporaneamente sembrano molto confusi. Forse utilizzare cerchi di dimensioni diverse per rappresentare 10, 100, 500 punti ecc. Sarebbe più facile in termini di elaborazione e visualizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top