javascript - 查找距离另一个坐标一定距离的坐标

标签 javascript google-maps-api-3 geometry

我正在使用Google map 几何库来计算两点之间的距离和航向:

...computeDistanceBetween(coord1, coord2) // = 10 m.
...computeHeading(coord1, coord2) // = 25

我想根据另一个已知坐标(也是 10 m)找到一个点。远离,朝同一方向(标题):

...computeDistanceBetween(coord3, unknown) // = 10 m.
...computeHeading(coord3, unknown) // = 25

在这种情况下如何计算未知数?

最佳答案

使用computeOffset。来自 the documentation :

computeOffset(from:LatLng, distance:number, heading:number, radius?:number)

Return Value: LatLng

Returns the LatLng resulting from moving a distance from an origin in the specified heading (expressed in degrees clockwise from north).

var distance = google.maps.geometry.spherical.computeDistanceBetween(coord1, coord2);
var heading = google.maps.geometry.spherical.computeHeading(coord1, coord2);
var newPt = google.maps.geometry.spherical.computeOffset(coord1, distance/2, heading);

代码片段:

function initialize() {
  var map = new google.maps.Map(
    document.getElementById("map_canvas"), {
      center: new google.maps.LatLng(37.4419, -122.1419),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
  var coord1 = new google.maps.LatLng(37.399228, -122.208676); // SouthWest corner
  var coord2 = new google.maps.LatLng(37.484548, -122.075124); // NorthEast corner
  var distance = google.maps.geometry.spherical.computeDistanceBetween(coord1, coord2);
  var heading = google.maps.geometry.spherical.computeHeading(coord1, coord2);
  var newPt = google.maps.geometry.spherical.computeOffset(coord1, distance / 2, heading);
  console.log(newPt.toUrlValue(6) + ", distance=" + distance.toFixed(2) + ", heading=" + heading);
  var marker = new google.maps.Marker({
    position: newPt,
    map: map
  });
}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry"></script>
<div id="map_canvas"></div>

关于javascript - 查找距离另一个坐标一定距离的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38191986/

相关文章:

javascript - 单击时强制将焦点保持在 anchor 上

javascript - 自动完成仅在页面加载或输入一个字母时运行一次,但仅运行一次

javascript - kendo ui网格查询参数

java - 单位圆程序舍入

c++ - 给定边和中心的矩形内的点

javascript - 一个项目中的多个 Node.js 应用程序 - 一些建议

javascript - 如何在圆上添加文字以及缩小不同圆时如何组合圆

javascript - 谷歌地图 APIV3 - 多个下拉类别/过滤标记结果

javascript - 将鼠标悬停在信息框上会在其后面的标记上触发悬停事件

geometry - 检查一个圆是否完全包含在其他圆的区域中的算法