【发布时间】:2011-03-17 11:19:06
【问题描述】:
我在 google 地图中遇到了覆盖问题。
问题是我使用数据库中的纬度和经度来显示覆盖 但它没有显示覆盖
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*" %>
<%
Connection connection = null;
boolean foundResults = false;
ResultSet set = null;
Statement statement = null;
String lat=null;
String lng=null;
%>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Geocoding Simple</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/standard.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map;
function initialize()
{
var myLatLng = new google.maps.LatLng(18.9, 72.8);
var myOptions = {
zoom: 11,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
see();
}
function see()
{
<%
int count=0;
try
{
Class.forName("org.postgresql.Driver");
connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","postgres", "password");
statement = connection.createStatement();
set = statement.executeQuery("SELECT count(lat) from latng");
while(set.next())
{
count = set.getInt(1);
}
}
catch(Exception e)
{
}
%>
var locations = new Array(<%= count%>);
for(i = 0; i < locations.length; i++)
{
locations[i] = new Array(<%= count%>);
}
<%
int i=0;
try
{
Class.forName("org.postgresql.Driver");
connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","postgres", "password");
statement = connection.createStatement();
set = statement.executeQuery("SELECT lat, lng FROM latng");
while(set.next())
{
lat=set.getString(1);
lng=set.getString(2);
%>
locations[<%= i %>][0]=<%= lat%>;
locations[<%= i %>][1]=<%= lng%>;
<%
i++;
}
%>
var i;
var infowindow = new google.maps.InfoWindow();
var marker;
for (i = 0; i < locations.length; i++)
{
marker = new google.maps.Marker({position: new google.maps.LatLng(locations[i][0],locations[i][1]),map: map});
var flightPlanCoordinates=[new google.maps.LatLng(locations[i][0],locations[i][1])];
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
<%
}
catch(Exception e)
{
}
%>
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width=100%; height:80%"></div>
</body>
</html>
谢谢,请有人帮助我......
【问题讨论】:
-
您从数据库中获取的数据是否正确?
-
我检查了代码不能使用静态值。
-
@M'vy 当您说不工作时,它的哪一部分不工作? firebug 或 chrome 开发者工具是怎么说的?
-
@kjy112 实际上我认为我用于静态案例的值超出了范围。看看我在下面的提议。我得到了上面有 3 个点的地图。 (当然是静态值)
-
@M'vy 是的,但我不确定他想如何覆盖地图?点之间的线?