2012-10-31 3 views
2

J'ai un problème de mots-clés composant dans la requête. J'ai besoin de faire une recherche qui va chercher, par exemple, par "spord doctor" ou "médecins" ou "médecine" dans une requête (& keywod = "médecin du sport" | "médecine" | "sport" | "médecin". Cette requête ne fonctionne pas mais comment faire ceci correctement). Je ne peux pas le composer en une seule requête. Y at-il une solution comment le faire parce que dans la documentation je vois seulement un exemple où est une recherche par un mot-clé ou une phrase. Enfin, je veux faire une longue requête où sont "médecins du sport" sur différentes langues.Android Google Maps recherche par mots-clés

J'ai trouvé la solution. Mais il fonctionne dans la barre d'URL du navigateur, pas dans l'application. J'ai utilisé le tuyau "|" comme instruction OR dans la requête: https://maps.googleapis.com/maps/api/place/search/json?location=59.436347,24.752356&radius=34572.53586&keyword=spordiarst|sport&sensor=false&key=AIzaSyCEVB4rY2A_AEyJ5JeopxaGz4zqm47yLuY

Mais j'ai erreur dans l'application si je mets quelque chose comme ceci:

HttpUriRequest request = new HttpGet("https://maps.googleapis.com/maps/api/place/search/json?" + 
      "location=" + ((lat == 0 || lat == gpsLat) ? gpsLat : lat) + ","+ ((lon == 0 || lon == gpsLon) ? gpsLon : lon) + 
      "&radius=" + radius + 
      "&keyword=\"spordiarst\"|\"sport\"" + 
      "&types=establishment" + 
      "&sensor=false&" + 
      "key=" + GOOGLE_MAPS_KEY); 

Erreur: Causée par: java.lang.IllegalArgumentException: caractère illégal dans la requête à l'index 127: https://maps.googleapis.com/maps/api/place/search/json?location=59.435330809999996,24.7727237&radius=1404.114013671875&keyword= "spordiarst" | "sport" & types = établissement & capteur = false & key = VOICI MY KEY

Comment résoudre ce problème? Comme je le vois, il n'y a pas d'espaces et de symboles spécifiques, mais ça plante. Il semble que cela semble dû au tuyau "|" ou des guillemets doubles \ ».

+0

S'il vous plaît ajouter un lien vers la Documentation de l'API que vous utilisez Au moins, je ne suis pas sûr du type de recherche effectué par google maps –

+0

J'ai utilisé cette documentation avec le format de sortie json: https://developers.google.com/academy/apis/maps/places/additional -places-features – user1376885

+1

J'ai trouvé la solution, mais elle fonctionne dans la barre d'adresse du navigateur et non dans l'application. J'ai utilisé le tuyau "|" comme instruction OR dans la requête: https://maps.googleapis.com/maps/api/place/search/json?location=59.436347,24.752356&radius=34572.53586&keyword=spordiarst|sport&sensor=false&key=AIzaSyCEVB4rY2A_AEyJ5JeopxaGz4zqm47yLuY – user1376885

Répondre

0
String types = "restaurant|food"; 
try { 
    types = URLEncoder.encode(types, "UTF-8"); 
} catch (UnsupportedEncodingException e1) { 
    // TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 

utilisateur cet encodeur pour faire la tuyauterie avec HttpGet, sinon vous obtiendrez Illegar caractère exception