Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 15452|Risposta: 0

[Fonte] Informazioni sulla geolocalizzazione di Java in ElasticSearch (geo_point)

[Copiato link]
Pubblicato su 09/01/2019 17:25:39 | | |
Breve introduzione

Sappiamo che ES supporta una vasta gamma di tipi di dati, oltre ai nostri comuni tipi di dati di base, supporta anche tipi di dati che registrano le informazioni sulla posizione. In ES, ci sono due tipi di dati che registrano le informazioni di geolocalizzazione, ovvero geo_shap e geo_point, e vi presenterò brevemente geo_point tipi
geo_point supporta molteplici metodi di trasferimento dati:

Stringa
Posizione: lat + "," + lon

Array
Posizione: {"lat": ...,"lon": ...}

Obiettivo
Posizione: [lon, lat]


Nota: Probabilmente tutti hanno calpestato questa fossa almeno una volta == I punti di coordinate geografici sono la latitudine prima e la longitudine ultima ("latitudine, longitudine") quando espresse come stringhe, mentre gli array sono rappresentati nella forma opposta, con longitudine prima e latitudine ultima ([longitudine, latitudine]). In effetti, all'interno di Elasticesearch, sia che si tratti di una corda che di un array, la latitudine viene prima e la longitudine per ultima. Tuttavia, nei primi tempi, per adattarsi alla specifica di formattazione di GeoJSON, la rappresentazione delle forme degli array fu adattata. Questo è spiegato sul sito ufficiale.
Generalmente ci sono i seguenti requisiti di query per i tipi di geo_point

Interrogazione sulla distanza
Trova punti entro il raggio del punto centrale

Query per intervallo di distanza (deprecato)
Interrogare i punti all'interno dell'intervallo specificato del punto centrale viene rimosso dall'API nella nuova versione di ES, quindi non lo spiegherò troppo qui
Query di confinamento
Trova punti all'interno di un rettangolo costituito da un punto specificato

Interrogazione poligonale
Trova punti in un poligono composto da più punti

La fabbrica SearchSourceBuilder costruita per diverse query in Java è la seguente:


Servizio come segue:

Il codice del livello controller è il seguente:

[1]. Come usare

Prima di usare geo_point tipi, dovremmo prima specificare esplicitamente il campo come tipo geo_point tramite mappatura quando si crea l'indice, come segue:


Sopra abbiamo creato un nuovo indice chiamato restraunt e, nel suo file di mappatura, specifichiamo esplicitamente il tipo di campo "location" come "geo_point"

[2] Prepara alcuni dati

Su Kibana abbiamo preparato i seguenti dati:


Abbiamo preparato 7 dati sopra, e poi dobbiamo eseguire la query per vedere se la nostra interfaccia soddisfa le nostre esigenze.

[3] Inchiesta

Distanza di query


Le altre due domande sono le stesse di sopra.




Precedente:ElasticsearchParseException[il campo deve essere [lat], [lon] o [geohash]]
Prossimo:Discuz installa l'app e dice "I dati non sono riconosciuti, per favore restituisci" soluzione alternativa
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com