-1

Je développe une application de navigation qui utilise Google Maps. J'essaie d'implémenter "mon emplacement d'utilisateur à proximité" avec l'application.Recherche autour d'un emplacement donné avec Algolia sur Android

Je souhaite utiliser le service Algolia pour rechercher des géo-emplacements en utilisant GeoFire avec Android & Firebase.

J'ai réussi à stocker les informations de latitude et de longitude dans mon index Algolia avec les instructions de leur documentation.

Mais je ne comprends pas comment je peux récupérer automatiquement la liste et mapper l'emplacement (comme dans le projet exemple de recherche instantanée algolia) basé sur ma position actuelle sans entrer le nom de lieu ou une adresse. Voici mon code actuel:

com.algolia.search.saas.Query query = new com.algolia.search.saas.Query().setAroundLatLng(new com.algolia.search.saas.Query.LatLng(lat,lng)).setAroundRadius(5000); 

index.searchAsync(query, new CompletionHandler() { 
    @Override 
    public void requestCompleted(JSONObject jsonObject, AlgoliaException e) { 

    } 
}); 

Répondre

2

Quel est le problème auquel vous faites face? Êtes-vous bloqué sur ce qu'il faut faire ensuite? Le JSONObject que vous obtenez dans requestCompleted va être quelque chose comme:

{ 
    "hits": [ 
    { 
     "firstname": "Jimmie", 
     "lastname": "Barninger", 
     "objectID": "433", 
     "_highlightResult": { 
     "firstname": { 
      "value": "<em>Jimmie</em>", 
      "matchLevel": "partial" 
     }, 
     "lastname": { 
      "value": "Barninger", 
      "matchLevel": "none" 
     }, 
     "company": { 
      "value": "California <em>Paint</em> & Wlpaper Str", 
      "matchLevel": "partial" 
     } 
     } 
    } 
    ], 
    "page": 0, 
    "nbHits": 1, 
    "nbPages": 1, 
    "hitsPerPage": 20, 
    "processingTimeMS": 1, 
    "query": "jimmie paint" 
} 

En Java, vous pouvez y accéder comme jsonObject.getObject("hits"). Vous utilisez instantsearch-android ou algoliasearch-client-android? Vous devez utiliser le instantsearch-android un, il est plus facile de lier la recherche avec votre interface utilisateur. Here's un exemple avec GoogleMaps.

+0

Merci beaucoup, pour répondre. Mon problème est basé sur ma recherche de localisation à proximité. Dans l'exemple qiven, la recherche est effectuée en donnant une entrée dans la barre de recherche mais mon besoin est la recherche par mon emplacement actuel. Je reçois avec succès le lat lng. –

+0

Lorsque j'exécute l'exemple d'application pour instantsearch je reçois cette erreur sur icebnb Erreur: (53, 17) erreur: registerResultListener (AlgoliaResultsListener) n'est pas public dans Searcher; ne peut pas être accessible à partir de l'emballage extérieur –

+0

Je vois. Comment intégrez-vous le sdk, avec gradle? En effet, à un moment donné il y avait un problème avec 'registerResultListener (AlgoliaResultsListener)' ne pas être public, mais il a été réparé [ici] (https://github.com/algolia/instantsearch-android/commit/ffac65c73ec7da1e86cde9c8f8db3a54ab58b163) –