Jsp 刷新谷歌地图而不重新加载页面

Jsp 刷新谷歌地图而不重新加载页面,jsp,google-maps,refresh,Jsp,Google Maps,Refresh,我想创建一个谷歌地图绘图仪,从数据库中获取GPS值,并使用标记将位置放在谷歌地图上。我已经有了一张基本地图,上面显示了指定位置上的标记。这很有效,并获取地图上显示的初始位置 我在数据库中循环并获取最新的条目。我还通过以下方式刷新地图: function keepAlive() { <% gps = new Gps(); coordinates = gps.getCoordinates(); // ou

我想创建一个谷歌地图绘图仪,从数据库中获取GPS值,并使用标记将位置放在谷歌地图上。我已经有了一张基本地图,上面显示了指定位置上的标记。这很有效,并获取地图上显示的初始位置

我在数据库中循环并获取最新的条目。我还通过以下方式刷新地图:

function keepAlive()
{
    <%
        gps = new Gps();

        coordinates = gps.getCoordinates();

//                        out.print(
//                            String.format(
//                                    "alert(%s, %s);",
//                                    new Object[]
//                                    {
//                                        gps.getLatitude(coordinates),
//                                        gps.getLongitude(coordinates)
//                                    }));

        out.print(
            String.format(
                    "var newLatlng = new google.maps.LatLng(%s, %s);",
                    new Object[]
                    {
                        gps.getLatitude(coordinates),
                        gps.getLongitude(coordinates)
                    }));
    %>

    map.setCenter(newLatLng);
    marker.push(newLatLng);
}

setInterval(keepAlive, 10000);
函数keepAlive()
{
地图设置中心(newLatLng);
标记器推送(newLatLng);
}
设置间隔(keepAlive,10000);
Gps是一个Java类,它执行繁重的操作,并返回数据库中的最新记录


刷新是有效的,因为如果我取消对警报的注释,它会在每10秒后不断弹出对话框。问题是没有新的数据被提取出来,它会不断弹出旧的数据。可能是什么问题?

我解决了这个问题。我们的想法不是在JavaScript中动态设置变量,而是让其他JSP页面获取数据,调用JSP页面并使用JQuery加载值

这就是现在的功能:

function refreshMap()
                {
                    $.ajax({
                        async: false,
                        type: 'GET',
                        url: 'lat.jsp',
                        success: function(data) {
                            newLat = data;
                        }
                    });

                    $.ajax({
                        async: false,
                        type: 'GET',
                        url: 'long.jsp',
                        success: function(data) {
                            newLong = data;
                        }
                    });

                    $.ajax({
                        async: false,
                        type: 'GET',
                        url: 'oldlat.jsp',
                        success: function(data) {
                            oldLat = data;
                        }
                    });

                    $.ajax({
                        async: false,
                        type: 'GET',
                        url: 'oldlong.jsp',
                        success: function(data) {
                            oldLong = data;
                        }
                    });


                    var lineCoordinates = [
                        new google.maps.LatLng(oldLat, oldLong),
                        new google.maps.LatLng(newLat, newLong),
                    ];

                    lineSymbol = null;

                    // Define the symbol, using one of the predefined paths ('CIRCLE')
                    lineSymbol = {
                        path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
                        scale: 4,
                        strokeColor: '#0000FF',
                        fillColor: '#0000FF',
                        fillOpacity: 1,
                    };

                    // Create the polyline and add the symbol to it via the 'icons' property.
                    line = new google.maps.Polyline({
                        path: lineCoordinates,
                        icons: [{
                                icon: lineSymbol,
                                offset: '100%'
                            }],
                        strokeOpacity: 0,
                        map: map
                    });

                    map.setCenter(new google.maps.LatLng(newLat, newLong));
                }
lat.jsp/long.jsp从数据库返回新的GPS坐标。使用
setInterval(refreshMap,5000)循环函数使地图动态刷新地图,而不刷新整个页面