|
|
@@ -47,6 +47,9 @@ public class GaoDeMapUtil {
|
|
|
@Value("${gaode.distanceUrl}")
|
|
|
private String distanceUrl;
|
|
|
|
|
|
+ @Value("${gaode.distanceTypeUrl}")
|
|
|
+ private String distanceTypeUrl;
|
|
|
+
|
|
|
@Value("${gaode.nearUrl}")
|
|
|
private String nearUrl;
|
|
|
|
|
|
@@ -147,6 +150,38 @@ public class GaoDeMapUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 计算两个经纬度的距离
|
|
|
+ *
|
|
|
+ * @param longitudeOne 经度1
|
|
|
+ * @param latitudeOne 纬度1
|
|
|
+ * @param longitudeTwo 经度2
|
|
|
+ * @param latitudeTwo 纬度2
|
|
|
+ * @return distance
|
|
|
+ */
|
|
|
+ public Double getDistanceStraightLine(String longitudeOne, String latitudeOne, String longitudeTwo, String latitudeTwo) {
|
|
|
+ try {
|
|
|
+ String urlString = String.format(distanceTypeUrl, key, longitudeOne, latitudeOne, longitudeTwo, latitudeTwo, 0);
|
|
|
+ JSONObject obj = getResponse(urlString);
|
|
|
+ if (null != obj && "1".equals(String.valueOf(obj.get("status")))) {
|
|
|
+ JSONArray resultsArray = obj.getJSONArray("results");
|
|
|
+ if (resultsArray != null && !resultsArray.isEmpty()) {
|
|
|
+ JSONObject resultJSON = resultsArray.getJSONObject(0);
|
|
|
+ return Double.parseDouble(resultJSON.getString("distance"));
|
|
|
+ } else {
|
|
|
+ log.error("AddressLocationUtil.getDistance ERROR 计算距离失败,结果为空");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("AddressLocationUtil.getDistance ERROR 计算距离失败");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("AddressLocationUtil.getDistance ERROR {}", e.getMessage());
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 获取附近商家、建筑等信息
|
|
|
*
|
|
|
* @param longitude 经度
|