Hybris:如何使用城市的纬度和经度修复查询

问题描述 投票:0回答:0

我在店面商店定位器上有一个错误,当我输入一个城市的名称(例如巴黎)时,我会返回除巴黎以外的几家商店(还有马德里、里斯本、摩纳哥、都灵等其他“附近”城市的商店),在代码中调查我看到在运行查询之前完成了这一步:


            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:谷歌地图地理编码。

非常感谢大家。我希望我已经说清楚了。

java google-maps-api-3 sap-commerce-cloud google-geocoder hybris-data-hub
© www.soinside.com 2019 - 2024. All rights reserved.