私はこれを今かなりの間把握しようとしています。私は指定された衛星の軌道を表示するためにマップを構築しています(Google Maps JS APIを使用しています)。私はいくつかの結果を達成することができましたが、HTMLページからデータを取得することはできませんでした。データは、Laravel Bladeを使用して各ページごとに動的に生成され、SQLデータベースの結果が表示されます。Javascript - 受信と書式HTML
衛星の軌道を描くためには、私はorbits-jsライブラリを使用しなければなりませんでした。
は、私がこれまでのところ、これを行うために管理:
はの形式で、テキストファイルからデータを取る:あなたが見ることができるように
0 ISS (ZARYA)
1 25544U 98067A 17202.25860705 .00002617 00000-0 46671-4 0 9999
2 25544 51.6406 228.4871 0006083 57.5520 20.0514 15.54198040 67054
、これは軌道をcalcuateするために使用されるデータです。各行は識別子-0,1または2で始まります。これは軌道パラメータを計算するためにorbit-jsによって使用されます。
私は、これはデータを取得するためのコードをJS使用:
$.get("/other/stations.txt", function(data) {
stations = orbits.util.parseTLE(data);
var i = 0;
for (; i < stations.length; i++) {
var name = stations[i].name;
var satOpts = {
map: map,
tle: stations[i],
pathLength: 3,
};
var sat = new orbits.Satellite(satOpts);
sat.refresh();
sat.refresh_path();
sats.push(sat);
}
setInterval(function() {
var i = 0;
for (; i < sats.length; i++) sats[i].refresh();
}, 500);
setInterval(function() {
var i = 0;
for (; i < sats.length; i++) sats[i].refresh_path();
}, 5 * 60000);
});
軌道-jsのライブラリは、このようなデータをフォーマット:
orbits.util.parseTLE = function(text) {
"use strict";
if (!text || typeof text != "string" || text === "") return [];
var lines = text.split("\n");
// trim emepty lines
for (var i = 0; i < lines.length; i++)
if (lines[i] === "") lines.splice(i, 1);
// see if we got something reasonable
if (lines.length < 3) return [];
if (lines.length % 3 !== 0)
throw new SyntaxError("The number of lines should be multiple of 3");
// try and make the array
var three;
var array = [];
while (lines.length) array.push(new orbits.TLE(lines.splice(0, 3).join("\n")));
return array;
};
私が望むのは、txtファイルの代わりにHTMLからデータを取り出すことです。私のHTML形式は、このようなものです:
<li id="tle-data-main">0 ISS (ZARYA)</li>
<li id="tle-data-main">1 25544U 98067A 17198.59697288 +.00000849 +00000-0 +20077-4 0 9991</li>
<li id="tle-data-main">2 25544 051.6415 246.7397 0005882 046.2932 050.6122 15.54169454066485</li>