Allows viable satellites to be found given multiple points on the Earth
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

103 lines
5.0 KiB

  1. <html ng-app="satTrackApp">
  2. <head>
  3. <title>Multipoint Satellite Tracker</title>
  4. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  5. <link rel="stylesheet" type="text/css" href="css/style.css">
  6. <link rel="stylesheet" type="text/css" href="css/jquery-ui.min.css">
  7. <script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
  8. <script type="text/javascript" src="js/jquery-ui.min.js"></script>
  9. <!-- Leaflet -->
  10. <link rel="stylesheet" href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css"
  11. integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA=="
  12. crossorigin=""/>
  13. <script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js"
  14. integrity="sha512-QVftwZFqvtRNi0ZyCtsznlKSWOStnDORoefr1enyq5mVL4tmKB3S/EnC3rRJcxCPavG10IcrVGSmPh6Qw5lwrg=="
  15. crossorigin=""></script>
  16. <!--<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB3FKjZo6Fe6Lg--EU1Ci7V4rHIiU9Igb4"></script>-->
  17. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
  18. <!-- <script src="js/ng-map.min.js"></script> -->
  19. <script src="js/moment.min.js"></script>
  20. <script src="js/satellite.min.js"></script>
  21. <script type="text/javascript" src="js/main.js"></script>
  22. </head>
  23. <body>
  24. <div id="container" ng-controller="satTrack-ctrl">
  25. <div id="controls">
  26. <center>
  27. <table border="1" ng-show="places.length > 0">
  28. <tr>
  29. <td><b>ID</b></td>
  30. <td><b>Latitude</b></td>
  31. <td><b>Longitude</b></td>
  32. <td><b>Minimum AoA</b></td>
  33. <td></td>
  34. </tr>
  35. <tr ng-repeat="point in places">
  36. <td>{{$index + 1}}</td>
  37. <td>{{point.marker.getLatLng().lat.toFixed(6)}}</td>
  38. <td>{{point.marker.getLatLng().lng.toFixed(6)}}</td>
  39. <td><input type="number" min="0" max="90" ng-model="point.angle"> deg</td>
  40. <td><button type="button" class="btn btn-danger" ng-click="removePoint($index)">Remove</button></td>
  41. </tr>
  42. </table>
  43. <div style="margin: 6px">
  44. Click on the map to add a point<br>
  45. Time zone: {{getTimezone()}}
  46. </div><BR><BR>
  47. From <input type="text" id="fromDate" style="width: 90px;">
  48. to <input type="text" id="toDate" style="width: 90px;"><br><br>
  49. <button type="button" class="btn btn-success" ng-disabled="places.length == 0" ng-click="getPasses()">Calculate Passes</button>
  50. <span class='glyphicon-left glyphicon glyphicon-refresh spinning' ng-show='isGettingPasses'></span>
  51. </center><BR>
  52. <table border="1">
  53. <tr>
  54. <td><b>Date</b></td>
  55. <td><b>Sat name</b></td>
  56. <td><b>Start time</b></td>
  57. <td><b>Max AoAs</b></td>
  58. <td><b>End time</b></td>
  59. <td><b>Total time of contact</b></td>
  60. </tr>
  61. <tr ng-repeat="pass in passes">
  62. <td>{{getDate(pass.time_start)}}</td>
  63. <td>{{pass.name}}</td>
  64. <td>{{getTime(pass.time_start)}}</td>
  65. <td style="white-space: nowrap;"><div ng-repeat="stat in pass.pointStats">
  66. Point {{$index + 1}}: {{stat.maxElv.toFixed(0)}} deg @ {{getTime(stat.timeMaxElv)}}
  67. </div></td>
  68. <td>{{getTime(pass.time_end)}}</td>
  69. <td>{{getDifferenceInMinutes(pass.time_end, pass.time_start)}}</td>
  70. </tr>
  71. </table><br>
  72. <div id="footer">
  73. <center>
  74. Developed by Stephen VE9QLE<br>
  75. <a href="https://git.scd31.com/stephen/multipoint-satellite-tracker">Git repository</a><br><br>
  76. </center>
  77. </div>
  78. </div>
  79. <div id="rightNav">
  80. <div id="tabs">
  81. <ul class="nav nav-tabs">
  82. <li class="{{(selectedTab == 'map') ? 'active':''}}"><a href ng-click="selectedTab = 'map'">Map</a></li>
  83. <li class="{{(selectedTab == 'config') ? 'active':''}}"><a href ng-click="selectedTab = 'config'">Configure satellites</a></li>
  84. </ul>
  85. </div>
  86. <div id="map" ng-show="selectedTab == 'map'">
  87. <div id="lmap"></div>
  88. </div>
  89. <div id="config" ng-show="selectedTab == 'config'">
  90. <center>
  91. Select all/none <input type="checkbox" ng-model="selectAllSats" ng-change="toggleEnabled(selectAllSats)"><br><br>
  92. </center>
  93. <div id="satlist">
  94. <div ng-repeat="sat in satellites" style="white-space: nowrap;"><input type="checkbox" ng-model="sat.enabled">&emsp;{{sat.name}}</div>
  95. </div>
  96. </div>
  97. </div>
  98. </div>
  99. </body>
  100. </html>