Qual è la migliore soluzione di mappatura web open source per la gestione di oltre 3000 poligoni [chiuso]


12

Ho più di 3000 poligoni che rappresentano i bacini idrografici (18 bacini idrici principali). Alla prima tappa verranno mostrati tutti i 18 spartiacque e il loro elenco verrà inserito nella barra laterale di sinistra. Se un utente del mouse sulla mappa mostra solo il nome dello spartiacque, il popup. Se un utente fa clic su uno dei maggiori spartiacque sulla mappa, si aprirà una finestra pop-up con dettagli. Con uno zoom più grande, tutti gli spartiacque mostreranno.

Chiedo il tuo consiglio quale soluzione open source è la migliore per gestire quella grande quantità di poligoni?

Stavo pensando a Leaflet o OpenLayers ma non so se possono gestire grandi quantità di poligoni.

Inoltre, suggerisci di memorizzarli in mysql o?


3
Puoi rasterizzare questi poligoni? o forse utilizzare un server di funzionalità come un geoserver o featureserver?
Dassouki,

Risposte:


12

Vorrei creare un servizio di immagine (livello raster) e servirlo con Web Map Service (WMS) . In questo modo puoi usare qualsiasi framework API con cui ti senti a tuo agio fintanto che supporta WMS ( OpenLayers lo fa ). È possibile utilizzare WMS per mostrare un livello di tutte le funzionalità del poligono, quindi utilizzare il clic GetFeatureInfo di WMS per ottenere informazioni su quel poligono.

Se per qualsiasi motivo sono necessari i dati vettoriali sulla mappa, è possibile crearli in modo dinamico facendo clic con i dati di risposta GetFeatureInfo.


5

Vedi TileMill , che può rasterizzare l' interazione UTFGrid in un file MBTiles e ospitarlo su MapBox o un'implementazione del server MBTiles open source come TileStache .

Ecco qui con molti poligoni . Questo approccio richiede di rasterizzare, ovvero le teglie da forno, ma è essenzialmente l'unico modo per fare quello che vuoi senza avere enormi risorse del server, un'app personalizzata o un set di browser molto limitato.


Mi piace questo esempio Puoi dirmi come posso rasterizzare gli shapefile? In TileMill? Grazie.
Counterflow

Sì, è il modo più comune. Ecco la documentazione sull'aggiunta di suggerimenti in questo modo . Se sei super allergico agli strumenti della GUI e a un professionista Python / Mapnik, c'è anche un percorso cli che evita tutto ciò ma è un po 'criptico.
tmcw,

2

La dipendenza dalla scala e un database indicizzato spazialmente saranno fondamentali per questo problema. Dovresti essere in grado di rappresentare i bacini idrografici usando almeno due, possibilmente tre o quattro livelli. Ad esempio, potresti dividere i dati in Maggiore (il 18), Minore (una combinazione di tutti i bacini idrografici di media scala che rientrano tutti nello stesso Maggiore) e Terziario (i 3000 poligoni). Questo ti darebbe tre diversi livelli / servizi vettoriali.

Utilizzare la dipendenza dalla scala per disegnare solo il servizio appropriato a seconda del livello di zoom dell'utente.

Utilizzare un database con indicizzazione spaziale per garantire che i servizi vengano disegnati rapidamente e disegnino solo la parte necessaria per riempire la finestra della vista corrente.

In alternativa, potresti prendere in considerazione la possibilità di creare tessere delle mappe spartiacque (di nuovo, create sulla base di scale appropriate per ogni livello) e servirle in quel modo.

Esistono già molte domande su questo sito che raccomandano appropriate soluzioni open source per impiegare queste strategie.


0

Oltre a TileMill puoi dare un'occhiata a MangoMap , non è open source ma è attualmente gratuito ed è in grado di gestire questo tipo di dati.

[Dichiarazione di non responsabilità: lavoro con MangoMap, ma rispondo perché è appropriato in questo caso]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.