我在店面商店定位器上有一个错误,当我输入一个城市的名称(例如巴黎)时,我会返回除巴黎以外的几家商店(还有马德里、里斯本、摩纳哥、都灵等其他“附近”城市的商店),在代码中调查我看到在运行查询之前完成了这一步:
List<GPS> corners = GeometryUtils.getSquareOfTolerance(center, radius);
if (CollectionUtils.isNotEmpty(corners) && CollectionUtils.size(corners) == 2) {
Double latMax = ((GPS) corners.get(1)).getDecimalLatitude();
Double lonMax = ((GPS) corners.get(1)).getDecimalLongitude();
Double latMin = ((GPS) corners.get(0)).getDecimalLatitude();
Double lonMin = ((GPS) corners.get(0)).getDecimalLongitude();
StringBuilder query = new StringBuilder();
query.append("SELECT {PK} FROM {PointOfService as p} WHERE
{p.lat} is not null AND {p.long} is not null AND
{p.lat} >= ?latMin AND {p.lat} <= ?latMax AND
{p.long} >= ?lonMin AND {p.long} <= ?lonMax");
FlexibleSearchQuery flexQuery = new FlexibleSearchQuery(query.toString());
flexQuery.addQueryParameter("latMax", latMax);
flexQuery.addQueryParameter("latMin", latMin);
flexQuery.addQueryParameter("lonMax", lonMax);
flexQuery.addQueryParameter("lonMin", lonMin);
基本上是在混合和最大纬度以及最小和最大经度之间创建一个范围,并且这个范围内的所有内容都被拉出,我该如何解决这个问题?我只希望我选择的城市中的商店被撤出。 使用的 Api:谷歌地图地理编码。
非常感谢大家。我希望我已经说清楚了。