1

テキスト ファイルから JSON オブジェクトを読み取り、位置を表示する Google Earth プラグインの実装があります。JSON オブジェクトには緯度と経度が含まれていますが、ここには制限があります... JSON オブジェクトが大きくなると (レコード数)、地球儀はそれらのレコードを選択しません。JSON オブジェクトには 50,000 を超えるレコードを含めることができますが、globe は一定量のレコードのみを選択します。地球によって読み取られるレコードの数を増やすにはどうすればよいですか?

JSON オブジェクトはこのようなものです。

{
    "latitude": 32.08546754111066,
    "longitude": -102.88606376716982
},
{
    "latitude": 38.09459585284452,
    "longitude": -106.99208418710695
}

このような JSON ファイルを開きます。

xmlHttp.open("GET", jsonfile, true);

JSON オブジェクトを取得し、位置を読み込みます

if (xmlHttp.status == 200 || xmlHttp.status == 0) {
  var result = xmlHttp.responseText;
  json = eval("(" + result + ")");
}       

loadMarkers();

現在、テキスト ファイルには 69,000 レコード (緯度と経度) がありますが、プラグインは 15,000 レコードしか取得できないようです。

4

1 に答える 1

1

解析されたデータからマーカーを作成する方法に関係があると思います。これをどのように行っているかを示していません-loadMarkers関数はどのように見えますか?

そのメソッドにはボトルネックがあると推測されます。おそらく、すべてのマーカーを作成するために Google Earth Api に対して非常に多くの呼び出しを行っている可能性があります...もしそうなら、これが問題の原因である可能性があります。 .

その場合、google.earth.executeBatchメソッドを使用して関数の本体を実行すると、 loadMarkersここで大いに役立つと思います。(それは、あなたがまだそれを正確に行っていない場合です!)

副次的な問題として、そのような方法で JSON を解析するべきではありませんeval。Eval は、あらゆるJavaScript を解析して実行します。JSON.parseを使用して、eval が作成するセキュリティ リスクを制限する必要があります。

于 2013-01-02T20:23:06.193 に答える