2012-10-31 59 views
2

我有一個問題的關鍵字組成查詢。我需要做一個查詢,例如在一個查詢中用「spord doctor」或「醫生」或「medicine」進行搜索(& keywod =「運動醫生」|「醫學」|「運動」|「醫生」)。此查詢不起作用,但如何正確執行此操作)。我無法在一個查詢中撰寫它。有沒有解決方案如何做到這一點,因爲在文檔中,我只看到一個例子,其中一個關鍵字或短語搜索。最後,我想做一個長的查詢,在哪裏是不同語言的「運動醫生」。安卓谷歌地圖按關鍵字搜索

我找到了解決方案。但它在瀏覽器URL欄中工作,而不是在應用程序中。我用管道「|」作爲或查詢語句: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

但我的應用程序有錯誤,如果我把這樣的事情:

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); 

錯誤:java.lang.IllegalArgumentException異常:由造成非法字符查詢索引127:https://maps.googleapis.com/maps/api/place/search/json?location=59.435330809999996,24.7727237&radius=1404.114013671875&keyword= 「spordiarst」 | 「運動」 &類型=建立&傳感器=假&鍵=這裏是我的KEY

如何解決呢?正如我所看到的那樣,沒有空間和特定的符號,但它崩潰了。看起來似乎是由於管道「|」或雙引號\」。

+0

請添加一個鏈接您使用的API文檔。至少我不確定它是什麼樣的谷歌地圖搜索。 –

+0

我以json輸出格式使用此文檔:https://developers.google.com/academy/apis/maps/places/additional -places-features – user1376885

+1

我找到了解決方案,但它在瀏覽器的URL欄中工作,而不是在應用程序中。我用管道「|」作爲查詢中的OR語句:https://maps.googleapis.com/maps/api/place/search/json?location = 59.436347,24.752356&radius = 34572.53586&keyword = spordiarst |& – user1376885

回答

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

用戶此編碼器,以與HTTPGET管工作,否則你將得到Illegar性格異常