2016-07-15 21 views
1

私は場所ベースのクエリを扱う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

答えて

0

は、Amazon DynamoDBのためのジオライブラリは、私の知る限りでは動作しません。代わりに、ジオポイントの場所を照会するためのCloudSearchやElasticSearchなどの代替案を探します。

ElasticSearchはすばらしい仕事をします。

関連する問題