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

Function generateControlPoints

libs/mapv/mapv.3d.js:1734–1765  ·  view source on GitHub ↗
(radius)

Source from the content-addressed store, hash-verified

1732};
1733
1734function generateControlPoints(radius) {
1735 for (var f = start_flight_idx; f < end_flight_idx; ++f) {
1736
1737 var start_lat = flights[f][0];
1738 var start_lng = flights[f][1];
1739 var end_lat = flights[f][2];
1740 var end_lng = flights[f][3];
1741
1742 var max_height = Math.random() * 0.04;
1743
1744 var points = [];
1745 var spline_control_points = 8;
1746 for (var i = 0; i < spline_control_points + 1; i++) {
1747 var arc_angle = i * 180.0 / spline_control_points;
1748 var arc_radius = radius + Math.sin(arc_angle * Math.PI / 180.0) * max_height;
1749 var latlng = latlngInterPoint(start_lat, start_lng, end_lat, end_lng, i / spline_control_points);
1750
1751 var pos = xyzFromLatLng(latlng.lat, latlng.lng, arc_radius);
1752
1753 points.push(new THREE.Vector3(pos.x, pos.y, pos.z));
1754 }
1755
1756 var spline = new THREE.SplineCurve3(points);
1757
1758 flight_path_splines.push(spline);
1759
1760 var arc_length = spline.getLength();
1761 flight_distance.push(arc_length);
1762
1763 setFlightTimes(f);
1764 }
1765}
1766
1767function latlngInterPoint(lat1, lng1, lat2, lng2, offset) {
1768 lat1 = lat1 * Math.PI / 180.0;

Callers 1

mapv.3d.jsFile · 0.85

Calls 7

latlngInterPointFunction · 0.85
xyzFromLatLngFunction · 0.85
setFlightTimesFunction · 0.85
sinMethod · 0.80
pushMethod · 0.80
getLengthMethod · 0.80
randomMethod · 0.45

Tested by

no test coverage detected