2016-07-15 7 views
1

Ich habe diese Java-Bibliothek von Amazon integriert, die standortbasierte Abfragen verarbeitet. Es dauert eine lange und lat und eine einzige Geopoint-Nummer daraus und speichern Sie es in DynamoDB, die eine NoSql-Datenbank ist.Finden Sie die nächsten 50 Artikel mit gegebenem Geo-Punkt

Was ich tun muss, ist die Datenbank abzufragen und die 50 nächstgelegenen Standorte zu einem bestimmten Geoposition zu bekommen. Die Bibliothek hat eine queryRadius() -Methode, die alle Geopoints innerhalb der angegebenen radiusInMeters abruft, aber ich bin mir nicht sicher, wie man die nächsten Geopositionen erhält, ohne den Radius zu begrenzen.

Hier ist der QueryRadius(); Methode geben sie.

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

Ich habe gesucht Hochs und Tiefs für Antworten und die besten fand ich (glaube ich) ist eine Antwort, die auf der Github-Repository für diese Bibliothek geschrieben wird. Jemand hat diese Frage auf der GitHub-Seite gestellt. Kann mir jemand helfen zu verstehen, dass die Jungs ein bisschen mehr antworten? Es mag eine einfache Lösung sein, denn aus irgendeinem Grund versteht mein armes Gehirn das nicht.

https://github.com/awslabs/dynamodb-geo/issues/3

Antwort

0

Geo-Bibliothek für Amazon DynamoDB nicht funktioniert meines Wissens. Suchen Sie stattdessen nach Alternativen wie CloudSearch oder ElasticSearch für die Abfrage von Geopositionsstandorten.

ElasticSearch wird einen tollen Job machen.

Verwandte Themen