@Slf4j @Service public class GeoregeoServiceImpl implements IGeoregeoService { @Resource private RedisTemplate redisTemplate; @Autowired private GeoregeoServiceApi georegeoServiceApi; @Value("${third.service.georegeo.radius}") private Integer radius; @Value("${third.service.georegeo}") private String georegeoUrl; /** * 经纬度获取地理位置 * * @param longitude 经度 * @param latitude 纬度 * @return */ @Override public GeographicalVo queryGeographical(String longitude, String latitude) { if (StringUtils.isBlank(longitude) || StringUtils.isBlank(latitude)){ throw new BusinessException(ExceptionEnum.LOCATION_NULL); } StringBuilder location = new StringBuilder(); location.append(longitude).append(",").append(latitude); log.info("==> location : {}",location.toString()); /*StringBuffer json = new StringBuffer(); String url = "https://restapi.amap.com/v3/geocode/regeo?key=01f8f9785a4220103df5f59aca83c75e&location="+location.toString(); try { URL u = new URL(url); URLConnection yc = u.openConnection(); //读取返回的数据 BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(),"UTF-8")); String inputline = null; while((inputline=in.readLine())!=null){ json.append(inputline); } in.close(); } catch (Exception e) { e.printStackTrace(); } log.info("==> result : {}",json.toString());*/ //JSON result = Feign.builder().target(GeoregeoServiceApi.class,georegeoUrl).queryLocation(location.toString(),"eb586667feb24a09c25497591d0f7e6a"); Object result = georegeoServiceApi.queryLocation(location.toString(),"01f8f9785a4220103df5f59aca83c75e"); log.info("==> georegeo result : {}",result); return null; }
//@FeignClient(value = "https://restapi.amap.com/" ) @FeignClient(url = "https://restapi.amap.com/",name = "gddt") //@FeignClient(url = "https://www.baidu.com",name = "aaa") public interface GeoregeoServiceApi { /** * 逆地理编码API服务地址 * @param location 经纬度坐标 经度在前,纬度在后,经纬度间以“,”分割,经纬度小数点后不要超过 6 位。 * @return */ /*@Headers({"Content-Type: application/json", "Charset: UTF-8"}) @RequestLine("GET v3/geocode/regeo") JSON queryLocation(@RequestParam("location")String location,@RequestParam("key")String key);*/ @GetMapping("v3/geocode/regeo") Object queryLocation(@RequestParam("location")String location, @RequestParam("key")String key); }
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.10.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.10.1</version> </dependency>