【问题标题】:How to find the distance to the nearest coastline from Property Place latitude/longitude point?如何找到从Property Place纬度/经度点到最近海岸线的距离?
【发布时间】:2018-06-28 11:55:02
【问题描述】:

我有一个地方有经纬度。我想使用谷歌地图 API 找到离我住处最近的海岸距离英里/公里。

这在 php 中有什么解决方案吗?

更多说明:

有没有办法知道到最近的海岸点的距离(即离海的最小距离)?

提前致谢。

【问题讨论】:

  • 看看你的大写锁定按钮。您已经尝试/发现了什么?
  • 我不确定,但我认为这个人在使用 StaCKOVerflow 时需要一些帮助。我们不会给你任何代码。尝试一下
  • 我的评论有什么问题
  • 欢迎来到 StackOverflow。您的问题似乎受到社区的严重欢迎。这是因为您的问题非常广泛。 Is this any solutionIs it possible in PHP 之类的问题是概念性的yes/no 问题,表明不愿意进行研究。然而,正确的顺序是先进行研究,然后在遇到似乎无法修复的错误时提出问题。

标签: php google-maps


【解决方案1】:

请尝试

$dist = "https://maps.googleapis.com/maps/api/directions/json?key=&origin=".$lat1.",".$lon1."&destination=".$lat2.",".$lon2."&mode=driving&sensor=true";
$result_string = file_get_contents($dist);
$result = json_decode($result_string, true);

【讨论】:

  • 谢谢,但它没用,我找到成本线距离英里/公里到我的地方,我们没有成本线目的地纬度和长度
【解决方案2】:

使用此函数计算经纬度之间的距离

function distance($lat1, $lon1, $lat2, $lon2, $unit) {

  $theta = $lon1 - $lon2;
  $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +  cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
  $dist = acos($dist);
  $dist = rad2deg($dist);
  $miles = $dist * 60 * 1.1515;
  $unit = strtoupper($unit);

  if ($unit == "K") {
    return ($miles * 1.609344);
  } else if ($unit == "N") {
      return ($miles * 0.8684);
    } else {
        return $miles;
      }
}

echo distance(32.9697, -96.80322, 29.46786, -98.53506, "M") . " Miles<br>";
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "K") . " Kilometers<br>";
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "N") . " Nautical Miles<br>";

【讨论】:

  • 谢谢,但它没用,我找到成本线距离英里/公里到我的地方,我们没有经纬度成本线
【解决方案3】:

距离海岸 REST API:http://www.kbgeo.com。您提供一个目标纬度/经度对或街道地址,它会返回到最近的沿海点的距离以及该点是什么。 JSON 响应示例:

{
  "distanceInMiles": 702.4893212372758,
  "targetPoint": {
    "lat": 43.045583,
    "lng": -89.3799951
  },
  "coastlinePoint": {
    "lat": 38.662389,
    "lng": -77.236111
  }
}

http://demo.kbgeo.com 有一个现场演示页面。

披露:我编写了这个 API,因此有既得利益。另一个做同样事情的 API 是 maprisk.com。

【讨论】:

  • Ludovico,正如我在回复您在 kbgeo.com 和我的个人网站上的消息时所解释的那样,KB Geo Distance to Coast 计算从陆地上的一点到最近海岸的距离。它不计算从水中一点到最近陆地的距离。这不是错误 - 这是产品的设计方式。您需要寻找其他产品或编写自己的产品来解决您的用例。
猜你喜欢
  • 1970-01-01
  • 2015-02-26
  • 2013-12-12
  • 2014-02-22
  • 1970-01-01
  • 2015-04-20
  • 2019-09-01
  • 2015-10-19
  • 1970-01-01
相关资源
最近更新 更多