私は場所ベースのクエリを扱うAmazonからこのjavaライブラリを統合しました。それは長いlatをとり、それから1つのジオポイント番号を作り、これをNoSqlデータベースであるDynamoDBに格納します。指定された地理座標で最も近い50個のアイテムを見つける
私がする必要があることは、データベースを照会し、指定されたジオポイントに最も近い50の場所を取得することです。ライブラリには、指定されたradiusInMeters内のすべてのジオポイントを取得するqueryRadius()メソッドがありますが、半径を制限せずに最も近いジオポイントを取得する方法がわかりません。
ここにqueryRadius()があります。彼らが与える方法。
private void queryRadius(JSONObject requestObject, PrintWriter out) throws IOException, JSONException {
GeoPoint centerPoint = new GeoPoint(requestObject.getDouble("lat"), requestObject.getDouble("lng"));
double radiusInMeter = requestObject.getDouble("radiusInMeter");
List<String> attributesToGet = new ArrayList<String>();
attributesToGet.add(config.getRangeKeyAttributeName());
attributesToGet.add(config.getGeoJsonAttributeName());
QueryRadiusRequest queryRadiusRequest = new QueryRadiusRequest(centerPoint, radiusInMeter);
queryRadiusRequest.getQueryRequest().setAttributesToGet(attributesToGet);
QueryRadiusResult queryRadiusResult = geoDataManager.queryRadius(queryRadiusRequest);
printGeoQueryResult(queryRadiusResult, out);
}
私は答えと(私は思う)このライブラリのgithubのリポジトリに掲載された答えは私が見つけた最高のハイとローで検索しました。誰かがgithubページでこの同じ質問をしました。誰かが私にこの人がもう少し答えを理解するのを助けることができますか?何らかの理由で私の貧しい脳がこれを理解していないという単純な解決策かもしれません。
https://github.com/awslabs/dynamodb-geo/issues/3