0

我有个问题。如何提高在下面的脚本中获取值的速度?我的脚本设置了 170 个标记,稍后在地图发生变化(空闲事件)时获取地图边界的 lng 和 lat 值,并将此值发送到隐藏字段。对于 10-20-30 标记,此值显示得非常快,但对于 +100 个标记,此功能非常慢,并且在地图更改时需要 5-6 秒才能显示所有值。我正在使用标记clusterer,但对速度没有影响。如何改善这一点?问候 !

                (..) // map options
                var map = new google.maps.Map(document.getElementById("mapka"), mapOptions);

                var markers = [];

                var lngstring = <%=lngstring %>
                var latstring = <%=latstring %>
                //alert(latstring);
                //alert(lngstring);
                var arraylat = latstring.split("#");
                var arraylng = lngstring.split("#");

                for (var i = 0; i < arraylng.length-1; i++) {
                var marker = new google.maps.Marker({
                    position: new google.maps.LatLng(arraylng[i], arraylat[i])
                    });
                markers.push(marker);
                }
                var markerCluster = new MarkerClusterer(map, markers);

                google.maps.event.addListener(map, 'idle', function () {
                var bounds = map.getBounds();
                var nelat = bounds.getNorthEast().lat();
                var nelng = bounds.getNorthEast().lng();
                var swlat = bounds.getSouthWest().lat();
                var swlng = bounds.getSouthWest().lng();
                var c1 = map.getCenter().lat();
                var c2 = map.getCenter().lng();
                var zoom1 = map.getZoom();
                document.getElementById("<%=hfNelat.ClientID%>").value = nelat;
                document.getElementById("<%=hfNelng.ClientID%>").value = nelng;
                document.getElementById("<%=hfSwlat.ClientID%>").value = swlat;
                document.getElementById("<%=hfSwlng.ClientID%>").value = swlng;
                document.getElementById("<%=UpdateButton1.ClientID %>").click();
                });

“后面”的代码:

    protected void UpdateButton_Click(object sender, EventArgs e)
    {
        lNelat.Text = hfNelat.Value;
        lNelng.Text = hfNelng.Value;
        lSwlat.Text = hfSwlat.Value;
        lSwlng.Text = hfSwlng.Value;
    }
4

1 回答 1

0

在我看来,您正在页面中静态加载标记。如果您使用 AJAX 技术(异步)加载标记,页面加载速度会更快。

请参阅 Mike Williams 的 v2 教程中的The AJAX Philosophy 页面

于 2012-07-09T02:17:26.620 回答