我的编程空间,编程开发者的网络收藏夹
学习永远不晚

利用java、js或mysql计算高德地图中两坐标之间的距离

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

利用java、js或mysql计算高德地图中两坐标之间的距离

前言

因为工作的原因,最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了相关计算方法,供大家参考,下面话不多说了,来一起看看详细的介绍吧。

Java实现

首先定义一个用于存储经纬度的类,这里起个名字叫:LngLat

package amap;import java.text.DecimalFormat;import java.text.DecimalFormatSymbols;import java.util.Locale;public final class LngLat implements Cloneable{  public final double latitude;  public final double longitude;  private static DecimalFormat format = new DecimalFormat("0.000000", new DecimalFormatSymbols(Locale.US));  public LngLat(double longitude, double latitude) { this(longitude, latitude, true); }  public LngLat(double longitude, double latitude, boolean isCheck) { if (isCheck) {  if ((-180.0D <= longitude) && (longitude < 180.0D))  this.longitude = parse(longitude);  else  {  throw new IllegalArgumentException("the longitude range [-180, 180].");  // this.longitude = parse(((longitude - 180.0D) % 360.0D + 360.0D) %  // 360.0D - 180.0D);  }  if ((latitude < -90.0D) || (latitude > 90.0D))  {  throw new IllegalArgumentException("the latitude range [-90, 90].");  }  this.latitude = latitude;  // this.latitude = parse(Math.max(-90.0D, Math.min(90.0D, latitude))); } else {  this.latitude = latitude;  this.longitude = longitude; } }  private static double parse(double d) { return Double.parseDouble(format.format(d)); } public LngLat clone() { return new LngLat(this.latitude, this.longitude); } @Override public int hashCode() { final int prime = 31; int result = 1; long temp; temp = Double.doubleToLongBits(latitude); result = prime * result + (int) (temp ^ (temp >>> 32)); temp = Double.doubleToLongBits(longitude); result = prime * result + (int) (temp ^ (temp >>> 32)); return result; } @Override public boolean equals(Object obj) { if (this == obj)  return true; if (obj == null)  return false; if (getClass() != obj.getClass())  return false; LngLat other = (LngLat) obj; if (Double.doubleToLongBits(latitude) != Double.doubleToLongBits(other.latitude))  return false; if (Double.doubleToLongBits(longitude) != Double.doubleToLongBits(other.longitude))  return false; return true; } public String toString() { return "lat/lng: (" + this.latitude + "," + this.longitude + ")"; }}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

利用java、js或mysql计算高德地图中两坐标之间的距离

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

利用java、js或mysql计算高德地图中两坐标之间的距离

前言因为工作的原因,最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了相关计算方法,供大家参考,下面话不多说了,
2023-05-31

编程热搜

目录