@@ -49,19 +49,23 @@ public List<Location> findLocations(String locationDbId, String locationType, St
4949
5050 public List <Location > findLocations (LocationSearchRequest request , Metadata metadata ) {
5151 Pageable pageReq = PagingUtility .getPageRequest (metadata );
52- SearchQueryBuilder <LocationEntity > searchQuery = new SearchQueryBuilder <LocationEntity >(LocationEntity .class )
53- .withExRefs (request .getExternalReferenceIDs (), request .getExternalReferenceSources ())
52+ SearchQueryBuilder <LocationEntity > searchQuery = new SearchQueryBuilder <LocationEntity >(LocationEntity .class );
53+
54+ if (request .getAltitudeMin () != null || request .getAltitudeMax () != null || request .getCoordinates () != null ) {
55+ searchQuery = searchQuery .join ("coordinates.coordinates" , "coordinates" );
56+ searchQuery = searchQuery .appendNumberRange (request .getAltitudeMin (), request .getAltitudeMax (), "*coordinates.altitude" )
57+ .appendGeoJSONArea (request .getCoordinates ());
58+ }
59+ searchQuery = searchQuery .withExRefs (request .getExternalReferenceIDs (), request .getExternalReferenceSources ())
5460 .appendList (request .getAbbreviations (), "abbreviation" )
55- .appendList (request .getCountryCodes (), "countrycode " )
56- .appendList (request .getCountryNames (), "countryname " )
57- .appendList (request .getInstituteAddresses (), "instituteaddress " )
58- .appendList (request .getInstituteNames (), "institutename " )
61+ .appendList (request .getCountryCodes (), "countryCode " )
62+ .appendList (request .getCountryNames (), "countryName " )
63+ .appendList (request .getInstituteAddresses (), "instituteAddress " )
64+ .appendList (request .getInstituteNames (), "instituteName " )
5965 .appendList (request .getLocationDbIds (), "id" )
6066 .appendList (request .getLocationNames (), "locationName" )
61- .appendList (request .getLocationTypes (), "locationType" )
62- .appendNumberRange (request .getAltitudeMin (), request .getAltitudeMax (), "altitude" )
63- .appendGeoJSONArea (request .getCoordinates ());
64-
67+ .appendList (request .getLocationTypes (), "locationType" );
68+
6569 Page <LocationEntity > entityPage = locationRepository .findAllBySearch (searchQuery , pageReq );
6670
6771 List <Location > data = entityPage .map (this ::convertFromEntity ).getContent ();
0 commit comments