gpt4 book ai didi

javascript - 如何在 FusionTables 层单击时加快 infoBox.open() 的速度?

转载 作者:行者123 更新时间:2023-11-29 20:00:53 25 4
gpt4 key购买 nike

设置

我有a polygon map of all the Provinces in South Africa .

然后将其作为 FusionTablesLayer 拉入 v3 Google map ,如下所示:

// The Google Map object
map = new google.maps.Map( mapCanvas, mapOptions );

// The FusionTables layer
layer['provinces'] = new google.maps.FusionTablesLayer({
query: {
select: '*',
from: '16L-UK_1OZxGw6DlKR8V8yP4XZrtmNdOMugRRNrQ'
},
clickable: true,
suppressInfoWindows: true // Hide the default FusionTables InfoWindow
});

紧接着,我将一个 click 事件监听器附加到 FusionTablesLayer,并构建一个自定义 InfoBox 对象,如下所示:

google.maps.event.addListener(layer['provinces'], 'click', function(e){

/*
Here I build the infoBox HTML using e.row[]
eg: html = '<div>' + e.row['Province'].value + '</div>';
*/

// Attach the infoBox to the click
infoBox.setContent(html);
infoBox.setPosition(e.latLng);
infoBox.open(map);

});

之后,我在 map 上渲染图层:

// Render the layer on the map
layer['provinces'].setMap(map);

所有这些都有效。没问题。


问题

点击事件返回 FusionTable 相应行中的所有列,并将其附加到上面的变量 e

现在,FusionTable 中的每一行都有一个很长的 KML 字符串 - 从 114kb 到 2.5MB - 这在 e.infoWindowHtmle.row['Polygon'].value.

e: (Object)
infoWindowHtml: "_Very_ long string in here."
latLng: Q
pixelOffset: T
row: (Object)
Number: (Object)
Polygon: (Object)
Province: (Object)

由于 Google 方面的大量缓存,该请求不会花费很长时间,但在点击一个省份后,弹出信息框需要将近 5 秒


tl;dr

infoBox.open(map) 方法在单击 FusionTables 多边形后非常慢。如何加快速度?

更新

数据在第一次点击后被缓存。有没有办法在第一次点击之前缓存数据?

或者,有没有办法限制返回的附加到 e 的变量,即:从点击请求中删除“多边形”数据?

最佳答案

我偶然找到了答案。

您可以通过在更改信息窗口布局... 窗口中选择适当的列来自定义返回的内容。

map 选项卡 工具 > 更改信息窗口布局...

我取消选择“多边形”,并选择“数字”和“省份”。

然后,您选择的列将附加到 click 事件监听器中的 e:

e: (Object)
infoWindowHtml: "Better string"
latLng: Q
pixelOffset: T
row: (Object)
Number: (Object)
Province: (Object)

重要提示(运气来了)

选择适当的列后,您需要以某种有意义的方式更改 FusionTable 数据 to clear the strong caching on Google's side .

Automatic 选项卡中选择的列被返回。Custom 选项卡似乎被忽略了。

关于javascript - 如何在 FusionTables 层单击时加快 infoBox.open() 的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14600871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com