MCPcopy Create free account
hub / github.com/SuperMap/iClient-JavaScript / latlngInterPoint

Function latlngInterPoint

libs/mapv/mapv.3d.js:1767–1786  ·  view source on GitHub ↗
(lat1, lng1, lat2, lng2, offset)

Source from the content-addressed store, hash-verified

1765}
1766
1767function latlngInterPoint(lat1, lng1, lat2, lng2, offset) {
1768 lat1 = lat1 * Math.PI / 180.0;
1769 lng1 = lng1 * Math.PI / 180.0;
1770 lat2 = lat2 * Math.PI / 180.0;
1771 lng2 = lng2 * Math.PI / 180.0;
1772
1773 var d = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin((lat1 - lat2) / 2), 2) + Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin((lng1 - lng2) / 2), 2)));
1774 var A = Math.sin((1 - offset) * d) / Math.sin(d);
1775 var B = Math.sin(offset * d) / Math.sin(d);
1776 var x = A * Math.cos(lat1) * Math.cos(lng1) + B * Math.cos(lat2) * Math.cos(lng2);
1777 var y = A * Math.cos(lat1) * Math.sin(lng1) + B * Math.cos(lat2) * Math.sin(lng2);
1778 var z = A * Math.sin(lat1) + B * Math.sin(lat2);
1779 var lat = Math.atan2(z, Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))) * 180 / Math.PI;
1780 var lng = Math.atan2(y, x) * 180 / Math.PI;
1781
1782 return {
1783 lat: lat,
1784 lng: lng
1785 };
1786}
1787
1788function xyzFromLatLng(lat, lng, radius) {
1789 var phi = (90 - lat) * Math.PI / 180;

Callers 1

generateControlPointsFunction · 0.85

Calls 2

sinMethod · 0.80
cosMethod · 0.80

Tested by

no test coverage detected