Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 15452|Répondre: 0

[Source] Informations sur la géolocalisation Java dans ElasticSearch (geo_point)

[Copié le lien]
Publié sur 09/01/2019 17:25:39 | | |
Brève introduction

Nous savons qu’ES prend en charge une grande variété de types de données, en plus de nos types de données de base courants, il prend aussi en charge des types de données qui enregistrent les informations de localisation. Dans ES, il existe deux types de données qui enregistrent les informations de géolocalisation, à savoir geo_shap et geo_point, et je vais brièvement présenter geo_point types ci-dessous
geo_point prend en charge plusieurs méthodes de transfert de données :

Corde
Position : lat + « », + lon

Tableau
Position : {"lat » : ...,"lon » : ...}

Objet
Lieu : [lon, lat]


Note : Probablement que tout le monde a déjà marché sur cette fosse au moins une fois == Les points de coordonnées géographiques sont la latitude en premier et la longitude en dernier (« latitude, longitude ») lorsqu’ils sont exprimés en chaînes de caractères, tandis que les tableaux sont représentés sous la forme opposée, avec la longitude en premier et la latitude en dernier ([longitude, latitude]). En fait, dans Elasticesearch, que ce soit sous forme de corde ou d’array, la latitude passe en premier et la longitude en dernier. Cependant, au début, afin de s’adapter à la spécification de formatage de GeoJSON, la représentation des formes de tableau a été ajustée. Cela est expliqué sur le site officiel.
Il existe généralement les exigences suivantes pour les types de geo_point

Requête sur la distance
Trouver des points à distance du point central

Requête sur la distance (obsolète)
Les points d’interrogation dans la plage spécifiée du point central sont supprimés de l’API dans la nouvelle version d’ES, donc je ne vais pas trop l’expliquer ici
Requête englobante
Trouver des points à l’intérieur d’un rectangle constitué d’un point spécifié

Requête polygonale
Trouver des points dans un polygone composé de plusieurs points

L’usine SearchSourceBuilder conçue pour différentes requêtes en Java est la suivante :


Service comme suit :

Le code de la couche contrôleur est le suivant :

[1]. Comment utiliser

Avant d’utiliser geo_point types, nous devons d’abord spécifier explicitement le champ comme le type de geo_point via une correspondance lors de la création de l’index, comme suit :


Ci-dessus, nous avons créé un nouvel index nommé restraunt, et dans son fichier de mappage, nous spécifions explicitement le type de champ « location » comme « geo_point »

[2] Préparez des données

Sur Kibana, nous avons préparé les données suivantes :


Nous avons préparé 7 données ci-dessus, puis nous devons exécuter la requête pour voir si notre interface répond à nos besoins.

[3] Enquête

Distance de requête


Les deux autres questions sont les mêmes que ci-dessus.




Précédent:ElasticsearchParseException[champ doit être soit [lat], [lon] soit [geohash]]
Prochain:Discuz installe l’application et dit « Les données non reconnues, veuillez retourner » solution de contournement
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com