2

クエリで構成するキーワードに問題があります。たとえば、1 つのクエリ (&keywod="sport doctor"|"medicine"|"sport"|"doctor") で "spord doctor" または "doctors" または "medicine" で検索するクエリを作成する必要があります。クエリは機能していませんが、これを正しく行う方法)。1 つのクエリで構成することはできません。ドキュメントには、1つのキーワードまたはフレーズによる検索の例が1つしかないため、それを行う方法はありますか? 最後に、さまざまな言語で「スポーツドクター」という長いクエリを実行したいと思います。

私は解決策を見つけました。ただし、アプリではなく、ブラウザーの URL バーで機能しています。パイプ「|」を使用しました クエリの OR ステートメントとして: 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"|"sport"&types=施設&センサー=false&key=ここに私の鍵があります

修正方法は?ご覧のとおり、スペースや特定の記号はありませんが、クラッシュします。パイプ「|」が原因で表示されるようです または二重引用符 \".

4

2 に答える 2

1

パラメータのURLEncodingは試しましたか?

于 2012-10-31T14:01:43.507 に答える
0
String types = "restaurant|food";
try {
     types = URLEncoder.encode(types, "UTF-8");
} catch (UnsupportedEncodingException e1) {
    // TODO Auto-generated catch block
     e1.printStackTrace();
}

このエンコーダーを使用して、パイプを HttpGet で動作させるようにします。そうしないと、Illegar Character 例外が発生します。

于 2013-06-28T18:47:36.077 に答える