我正在使用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/