Come memorizzare in modo efficiente le posizioni?

0

Qual è il modo migliore per memorizzare / esporre luoghi?

Cose da considerare:

  1. Voglio esporre solo le posizioni da un'area specifica all'utente
  2. Voglio essere in grado di consentire all'utente di scegliere più o meno località dirette (es. sobborgo o città)
  3. Deve essere a prova di futuro, diciamo che l'area delle posizioni disponibili si espanderà

Ci sono altre cose da considerare a cui non ho pensato?

Il modo in cui stavo pensando di farlo è archiviare i nomi delle località come struttura ad albero.

Australia - > NSW - > Sydney - > Surry Hills - > 2011

Immagine di esempio:

Il risultato finale non deve essere esattamente come l'immagine di esempio. Inoltre, forse non dovrei memorizzare le posizioni? Stavo pensando di importarli anche in un sistema da un file geoJSON.

Esempio di caso d'uso

Diciamo che abbiamo società e la mappa dei luoghi in cui forniscono servizi. Se l'utente cerca aziende in un sobborgo, vorrei mostrargli quelli che forniscono servizi anche in tutta la città (sede principale).

    
posta Vardius 08.11.2017 - 01:53
fonte

2 risposte

4

Converti tutte le tue stringhe in latitudini e longitudini effettive usando un servizio di geocoding.

Memorizza le coordinate delle posizioni in un database che supporta le query di distanza geografiche (PostGIS, ricerca elastica)

Leggi come eseguire una query utilizzando la pertinenza geografica.

  • PostGIS KNN
  • ElasticSearch Geodistance

Potresti anche voler esaminare Set nidificati ma se la tua gerarchia ha una profondità variabile potresti voler esaminare un database grafico per avere query proficue.

    
risposta data 09.11.2017 - 05:41
fonte
2

Poiché il tuo caso d'uso mostra l'importanza dei confini amministrativi, le distanze fisiche come descritte da latitudine e longitudine sono piuttosto irrilevanti. Un business dall'altra parte di un confine nazionale a solo 1 miglio di distanza potrebbe essere inutile, in contrasto con un'azienda a 10 miglia di distanza sullo stesso lato del confine.

Dovrai definire la gerarchia del luogo. Un punto di partenza può essere il concetto "admin_level" utilizzato da OpenStreetMap (vedi ad esempio link ). Nota che non tutti i paesi utilizzano tutti i livelli.

Ma poi il problema principale sarà riempire le tabelle con i dati, o piuttosto ottenere i dati da qualche parte.

    
risposta data 10.11.2017 - 10:06
fonte

Leggi altre domande sui tag