Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public List<Place> getPlacesForCategory(ElementList<Category> categories,
- GeoPosition geoposition) throws SQLException {
- reconnectIfBroken();
- int distance = 1;
- Place currentPlace = null;
- Address address;
- List<Place> places = new ArrayList<Place>();
- ElementList<Voucher> vouchers = new ElementList<Voucher>();
- for (int i = 0; i < categories.getList().size(); i++) {
- stmt = "SELECT id,name,city,ccode,address,postcode,state,website,"
- + "category,subcategory,latitude,longitude,rating,numberofr,qr, (((acos( "
- + "sin( ( ?"
- + " * pi( ) /180 ) ) * "
- + "sin( (`latitude` * pi( ) /180 ) ) + "
- + "cos( ( ?"
- + " * pi( ) /180 ) ) *"
- + "cos( (`latitude` * pi( ) /180 )) * "
- + "cos( (( ?"
- + " - `longitude` ) * "
- + "pi( ) /180 )))))) "
- + " AS `distance` FROM places WHERE category =? HAVING `distance`<=?"
- + " ORDER BY `distance` ASC";
- prepStmt = connection.prepareStatement(stmt);
- prepStmt.setDouble(1, geoposition.getLat());
- prepStmt.setDouble(2, geoposition.getLat());
- prepStmt.setDouble(3, geoposition.getLon());
- prepStmt.setString(4, categories.getList().get(i).getName());
- prepStmt.setInt(5, distance);
- rs = prepStmt.executeQuery();
- /*
- * statement.executeQuery(
- * "SELECT id,name,city,ccode,address,postcode,state,website," +
- * "category,subcategory,latitude,longitude,rating,numberofr,qr, (((acos( "
- * + "sin( ( " + geoposition.getLat() + " * pi( ) /180 ) ) * " +
- * "sin( (`latitude` * pi( ) /180 ) ) + " + "cos( ( " +
- * geoposition.getLat() + " * pi( ) /180 ) ) *" +
- * "cos( (`latitude` * pi( ) /180 )) * " + "cos( (( " +
- * geoposition.getLon() + " - `longitude` ) * " +
- * "pi( ) /180 )))))) " +
- * " AS `distance` FROM places WHERE category ='" +
- * categories.getList().get(i).getName() + "' HAVING `distance`<=" +
- * distance + " ORDER BY `distance` ASC");
- */
- while(rs.next()){
- rs2 = statement3
- .executeQuery("SELECT * FROM cities where name = '"
- + rs.getString("city") + "'");
- rs2.next();
- if (rs.getString("state") == null)
- address = new Address(rs.getString("address"), rs
- .getString("postcode"), rs.getString("city"), "",
- rs2.getString("country_code"));
- else
- address = new Address(rs.getString("address"), rs
- .getString("postcode"), rs.getString("city"), rs
- .getString("state"), rs2.getString("country_code"));
- currentPlace = new Place(rs.getInt("id"), rs.getString("name"),
- address, rs.getString("website"), new GeoPosition(rs
- .getDouble("longitude"), rs
- .getDouble("latitude")),
- rs.getDouble("rating"), rs.getString("qr"));
- stmt = "SELECT * FROM categories WHERE placeID = ?";
- prepStmt = connection.prepareStatement(stmt);
- prepStmt.setInt(1, rs.getInt("id"));
- rs3 = prepStmt.executeQuery();
- while (rs3.next())
- categories.add(new Category(rs3.getString("category"), rs3
- .getString("description")));
- currentPlace.setCategories(categories);
- rs3.close();
- rs2.close();
- rs2 = statement2
- .executeQuery("SELECT * FROM vouchers WHERE placeID = "
- + rs.getInt("id"));
- while (rs2.next())
- vouchers.add(new Voucher(rs2.getInt("voucherID"), rs
- .getInt("id"), rs2.getString("description")));
- currentPlace.setVouchers(vouchers);
- if (places.contains(currentPlace))
- System.out.println("Place already exists");
- else
- places.add(currentPlace);
- }
- }
- // if (places.isEmpty())
- // return null;
- // else
- return places;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement