добрый день всем: у меня есть небольшая проблема, которую я хочу, чтобы вы помогли мне решить. Моя проблема заключается в следующем, я должен найти более короткое расстояние магазинов в соответствии с картами Google и в соответствии с широтой и долготой, в любом случае, у меня есть запрос, который делает это, моя проблема, когда я звоню на jparepository
, он возвращает массив и мне нужно вернуть меня с указанным c форматом.
Это моя конечная точка, которую я пытаюсь получить из jparepository
@RequestMapping(value = "api/promos/distance/", method = RequestMethod.GET)
public ResponseEntity<?> distance(@RequestParam(required = false) Double latitude, Double longitude, Long radius) {
try {
return ResponseEntity.status(HttpStatus.OK)
.body(locationDAO.findDistance(latitude,longitude,radius));
} catch (Exception ex){
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(ex.toString());
}
}
это мой репозиторий с параметрами и возвращаем 2 значения
@Query(value = "select sp.id as id, \n" +
" ( 6371 * acos( cos( radians(:latitude) ) \n" +
" * cos( radians( sp.latitude )) \n" +
" * cos( radians( sp.longitude ) - radians(:longitude)) \n" +
" + sin( radians(:latitude) ) \n" +
" * sin( radians( sp.latitude ) ) ) ) AS distance \n" +
" from promo_locations sp \n" +
"having distance < :radius ORDER BY distance ASC", nativeQuery = true)
List<Object> findDistance(
@Param("latitude") Double latitude,
@Param("longitude") Double longitude,
@Param("radius") Long radius);
, и это показывает мне это
[
[
1,
137.94383549078196
],
[
2,
137.94383549078196
]
]
, но мне нужно показать мне в этом формате:
[
{
"id" : 1,
"distance" : 137.94383549078196
},
{
"id" : 2,
"distance" :137.94383549078196
}
]
Если кто-то знает, как карту или как конвертировать, я буду вам очень благодарен