1

我有一个谷歌地球插件实现,它从文本文件中读取一个 JSON 对象,然后显示位置。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函数体可以帮助你很多。(也就是说,如果您还没有完全这样做!)

在一个附带问题上,您真的不应该使用eval这样的方式解析 JSON。Eval 将解析并执行任何javascript。您应该使用JSON.parse来限制 eval 产生的安全风险。

于 2013-01-02T20:23:06.193 回答