我有一个Google地球插件实现,它从文本文件中读取JSON对象,然后显示位置。 JSON对象包含纬度和经度,但这里有一个限制......如果JSON对象变大(记录数),那么globe不会选择那些记录。 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条记录。
答案 0 :(得分:1)
我认为这与您从解析数据中创建标记的方式有关。你没有说明你是怎么做的 - loadMarkers
函数是什么样的?
据猜测,这种方法存在瓶颈,它可能会对Google Earth Api进行大量调用以创建所有标记......如果是这样的话,这很可能就是问题的原因你有。
如果是这种情况,那么我会想象使用google.earth.executeBatch方法执行loadMarkers
函数的主体可以在这里帮助你。 (那就是你还没有做到这一点!)
在一个侧面问题上,你真的不应该使用eval
这样解析JSON。 Eval将解析并执行任何 javascript。您应该使用JSON.parse来限制eval创建的安全风险。