abhijithvijayan / OpenAir

Real-time Air Quality Monitoring and Navigation System based on IoT
GNU General Public License v3.0
5 stars 0 forks source link

[server]: optimise database query of finding nearby location #4

Open abhijithvijayan opened 4 years ago

abhijithvijayan commented 4 years ago

Currently, when a user searches for route between 2 points

  1. Backend requests to Google Maps API to get routes to destination from source.
  2. Select a route and iterate through the points in between
    1. select the 3000m nearby point from current point
    2. query 1500m distant node aqi value from the selected point
  3. return results to the user with all the points and curresposing aqi values.

This model is inefficient considering the number of database queries for a single user request.

Suppose the user's path has 2 routes and one route has 8 points in between with 4 selectable points(with 3000m distance in between) including source and destination. It takes 4 database queries to find nearest aqi node value.

Also the same for second route.

Refactor this to query the database in a single session and then return the results

abhijithvijayan commented 4 years ago

https://stackoverflow.com/questions/59434519/geoalchemy2-find-a-location-within-certain-distance-within-given-coordinate