Back to Question Center
0

Semalt: modi migliori per raccogliere l'input dell'utente basato sulla posizione

1 answers:

Sto lavorando a un sito Web in cui gli utenti saranno in grado di registrarsi e fornire informazioni sulla loro posizione. Per impedire agli utenti di immettere dati errati, non vogliamo che gli utenti forniscano informazioni di testo libero, ma scelgano il più possibile da valori predefiniti. Riteniamo che vi siano 2 modi per fornire tali valori: utilizzare una API a un fornitore di servizi esterno o creare il proprio database locale .

API

Alcune risorse:
- https: // sviluppatori. Facebook - paracas tour. it / docs / reference / ads-api / get-autocomplete-data /
- http: // developer. yahoo. com / geo / geoplanet /

Pro:
-accuratezza e completezza dei dati.
-nessuna manutenzione relativa all'aggiornamento dei dati in quanto è stata curata dal provider API.
-easier / più veloce per iniziare (non è necessario creare un database locale, basta implementare l'API).

Contro:
-degradazione delle prestazioni in caso di problemi di disponibilità con API esterne.
-outout dovuto a modifiche all'API esterna (finché il codice non viene aggiornato per riflettere tali modifiche).
-lock-in con provider esterno.

Database locale

Alcune risorse:
- http: // developer. yahoo. com / geo / geoplanet / data /
- http: // www. MaxMind. com / app / geolitecity
- http: // download. geonames. org / export / discarica /

Pro:
-nessuna dipendenza esterna: maggiore stabilità e prestazioni.

Contro:
-più lavoro per iniziare (è necessario creare il database e il codice per interagire con esso).
-rischi di dati inesatti / incompleti, inizialmente o nel tempo.
-più interventi di manutenzione per mantenere aggiornato il database.

Supponendo che le informazioni sulla profondità richieste dagli utenti siano le seguenti:
- paese: interessato al valore. utilizzato anche per restringere la lista delle regioni.
- regione (stato negli Stati Uniti, contea nel Regno Unito ): non interessato al valore stesso, usato solo per restringere la lista delle città.
- città: interessato al valore (che può essere utilizzato per elaborare la regione correlata se abbiamo bisogno di statistiche regionali).
- indirizzo : interessato al valore sebbene FACOLTATIVO.

Quale opzione (se API o database locale ) sceglieresti? Quali consigli daresti per l'implementazione? Quali altre risorse puoi condividere?

February 13, 2018

Mentre il mio IP è dinamico (DHCP) non è mai preciso per la mia città a volte la città può essere a 60 miglia di distanza Raccogliere il paese dell'IP dietro le quinte non costringe l'utente a fornirlo. Quindi raccogliere la regione da un altro database, non ancora quando gli utenti si registrano.

Quando chiedi questo tipo di informazioni da un utente e cerchi di generarlo automaticamente e confrontarlo con un database, troverai molte persone che abbandonano il tuo sito. Cosa succede alle persone che stanno dietro a proxy, VPN o Tor?

Vorrei ribadire l'importanza della convalida delle informazioni che raccogli. Dopo tutto, se è abbastanza importante raccoglierlo, è meglio assicurarsi che sia corretto contro le giuste autorità / fonti. Se non è che è importante, perché raccoglierlo del tutto e onerare l'utente?

Lavoro per SmartyStreets dove convalidiamo le posizioni degli utenti, in particolare i loro indirizzi, e quindi ho risolto una serie di problemi come questi. Vorrei quindi suggerire che una API è la soluzione più robusta per fornire valore a voi. In altre parole, dai tuoi pro e contro elenchi, la differenza è chiara: la creazione di un database locale è molto più costosa di potenziali effetti collaterali minimi dell'utilizzo di un'API professionale. Mentre molte persone raccolgono indirizzi, pochi si assicurano che sia un indirizzo corretto che esiste realmente. Google e Yahoo e servizi simili non forniscono questo: attenzione che eseguono l'approssimazione dell'indirizzo non , e i loro risultati sono le ipotesi migliori.

Per gli indirizzi degli Stati Uniti, USPS CASS - certifica una manciata di fornitori per fornire il loro indirizzo e dati di posizione autorevoli ad altre persone. Puoi Google da solo, ma quello che stai cercando è qualcosa come LiveAddress API , che verificherà e geolocalizzerà gli indirizzi statunitensi.

Posso dirvi che abbiamo investito considerevoli risorse per costruire e mantenere il database, i rischi e gli altri svantaggi che hai menzionato riguardo alla costruzione del tuo database. Abbiamo anche affrontato i contro che hai elencato su un'API. Vedi lo SLA per i dettagli e tieni presente che siamo l'unico fornitore la cui API è geo-distribuita su 3 datacenter ridondanti per garantire prestazioni e uptime. In altre parole, è molto veloce e le richieste vengono elaborate in parallelo.

Usare le moderne funzioni di geolocalizzazione (HTML5, ecc.) Sono accurate in una certa misura, ma anche adesso la loro compatibilità è limitata ai browser più moderni in impostazioni ideali (sono cresciuto in Iowa dove la geolocalizzazione è ben lontana dalle aree urbane). Ma ottenere e verificare l'indirizzo di un utente è un modo sicuro per ottenere ciò di cui hai bisogno, se è davvero necessario. Questo è quello che farei.