Come definire l'area di servizio - con i codici di avviamento postale?

3

Sto lavorando a un sito per i servizi a casa. Qual è la migliore pratica per definire l'area di servizio di un fornitore di servizi?

Il mio pensiero iniziale era di definire l'area di servizio di ciascun fornitore come una serie di codici postali. Se il cliente richiede un servizio, cerca semplicemente i fornitori con i codici postali corrispondenti - abbastanza facile. Ho fatto un po 'di ricerche e sono certo che funzionerà, a patto che riesca a trovare un database di codice postale accurato. Il miglior database che ho trovato è costoso e prima di intraprendere questo sforzo per il codice postale, voglio assicurarmi che non ci sia un modo migliore per eseguire questa operazione.

Ad esempio "Google Business Listings" utilizzato per chiederti di definire la tua "Area di servizio". In che modo Google ha archiviato questi dati - come una casella o un cerchio di coordinate lat / lon?

Sembra che questo processo per la definizione e l'archiviazione di una "area di servizio" e quindi l'abbinamento a una richiesta sia comune, quindi quali sono le best practice di oggi per questo processo?

    
posta TopAngler 01.11.2017 - 15:59
fonte

2 risposte

4

Devi definire cosa intendono i tuoi fornitori di servizi per area di servizio. Ci sono diversi modi per farlo, a seconda di quanto specifico vuoi ottenere.

Ecco alcune opzioni che vanno dal semplice al più difficile:

  • Lat / Lon del centro servizi e un raggio. Cioè 20 miglia dal 34.1234, -81.2235. Questa è per definizione un'ellisse (latitudine e longitudine non aumentano nella stessa proporzione sul terreno)
  • Un poligono geografico che specifica la regione (come Zillow ti consente di fare).
  • Una mappatura imprecisa dei codici postali adiacenti a un poligono geografico richiede un database per eseguire tale mappatura

Quindi hai davvero bisogno di pensare all'area di servizio dal punto di vista di come il fornitore di servizi lo definisce. Se il tuo fornitore di servizi è disposto a percorrere il numero X di miglia, la prima opzione potrebbe essere abbastanza buona. Se il tuo fornitore di servizi ha in mente un'area specifica, potrebbe voler disegnare l'area su una mappa e lasciare che sia la loro area di servizio. Se il tuo fornitore di servizi afferma di utilizzare i codici postali X, Y e Z, potrebbe essere necessario generare il poligono di delimitazione da tali codici postali.

La query raggio semplice è abbastanza banale da fare nei database che hanno il supporto geospaziale. Tutte le altre opzioni richiedono un poligono memorizzato nel database. Per ottimizzare quella query, escludere tutti i record che non hanno prima una casella di delimitazione intersecante. I poligoni geospaziali sono lenti da eseguire, quindi un rapido controllo preliminare sul riquadro di delimitazione di solito velocizza le prestazioni della query molto più rapidamente.

La maggior parte dei casi può essere facilmente implementata con la prima opzione, ma potresti trovarti soggetto a casi limite in cui la strada per raggiungere una località andrà al di fuori dell'intervallo.

    
risposta data 01.11.2017 - 18:36
fonte
1

Come fare questo "meglio" è qualcosa che dipende in realtà da come definisci il "migliore".

I codici postali sono probabilmente i migliori per semplicità di archiviazione e consultazione, ma saranno sub-ottimali per la mancanza della capacità di tenere conto della distanza effettiva dall'origine del servizio (ad esempio l'ufficio del fornitore) e dei confini dell'autorità (ad es. ha una licenza per lavorare in un determinato stato) e aree di oscuramento (ad es. se c'è una strada o un quartiere in cui il tuo provider si rifiuta di lavorare per un motivo o per un altro).

Quindi a breve termine potresti probabilmente iniziare con le cerniere, ma hai intenzione di crescere in un database che supporterà le query geospaziali, in modo da poter aggiungere in seguito opzioni di area di servizio più dettagliate.

    
risposta data 01.11.2017 - 17:23
fonte

Leggi altre domande sui tag