【发布时间】:2019-11-17 23:01:35
【问题描述】:
在我的应用程序中,我显示了点 A 到点 B 之间的路线。
final PolylineOptions polyOptions = new PolylineOptions();
polyOptions.color(ContextCompat.getColor(mContext, R.color.accent_color));
polyOptions.width(20);
polyOptions.addAll(currentRoute.getPoints());
在 currentRoute.getPoints 中,我拥有所有用于在地图上绘制路线的 LatLng。我将它们之间距离为 5 公里的所有点提取到一个名为 points 的 ListArray 中。
现在我想用我的数据库中的位置填充这条路线。我需要显示我的数据库中所有在路线上或在 5 公里范围内(路线两侧)附近的位置。
为此,我需要转到数据库并过滤记录以查找 5 公里范围内的所有位置。我不知道如何实现 location_latitude 和 location_longitude 的 WHERE 请求,以获取 5 公里范围内的所有记录到参考位置。
我当前的 SQL 是:
query = "SELECT location_id, location_name, " +
"location_address, location_image, " +
"location_latitude, location_longitude, " +
"c.category_marker, l.category_id " +
"FROM tbl_categories c, tbl_locations l " +
"WHERE l.category_id " + " = " + categ + " AND l.category_id = c.category_id AND " +
"location_county " + " = \"" + county + "\"";
有什么建议可以更快地过滤我的数据库(sql 查询)以查找路线附近的所有位置吗?
【问题讨论】:
-
关于您的数据库的很多(全部?)信息都丢失了。有人会如何建议一个过滤器,它会比什么更快,更快?
-
在 currentRoute.getPoints 中,我拥有所有用于在地图上绘制路线的 LatLng。我提取了所有相距 5 公里的点。然后我需要去数据库并过滤记录以查找 5 公里范围内的所有位置。我不知道如何实现 WHERE 请求以获取 5 公里范围内的所有记录到参考位置。
-
计算距离,比较一下,见dbfiddle
标签: sql database android-studio filter google-maps-markers