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