我是ASP的新手,我有一些小项目要做,所以我有所帮助。 我需要编写asp页面,它将从数据库读取纬度和经度,并在地图上放置标记。 这是我目前的代码
function initialize() {
// initialize the map
var latlng = new google.maps.LatLng(-25.363882,131.044922);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// define custom image
var image = 'Computer.GIF';
// load data from db
<%
conn=Server.CreateObject("ADODB.Connection");
conn.Provider="Microsoft.Jet.OLEDB.4.0";
conn.Open("c:/webdata/dbATMManager999.mdb");
rs=conn.execute("select * from ATM WHERE LATITUDE IS NOT NULL AND LONGITUDE IS NOT NULL");
while( !rs.eof ) {
%>
var currLatLng = new google.maps.LatLng(<%rs.Fields("LATITUDE");%>, <%rs.Fields("LONGITUDE");%>);
var customMarker = new google.maps.Marker({
position: currLatLng,
map: map,
icon: image
});
<% rs.movenext();
...
这一行 new google.maps.LatLng(&lt;%rs.Fields(“LATITUDE”);%&gt;,&lt;%rs.Fields(“LONGITUDE”)%&gt;); 导致问题。出于某种原因,我得到运行时错误: Microsoft JScript运行时错误:参数数量错误或属性分配无效
答案 0 :(得分:2)
您的经度和纬度未写入页面。您需要在Response.Write纬度和经度中添加“=”符号。 &lt;%= rs.Fields(“LATITUDE”)%&gt;相当于&lt;%Response.Write(“Test”)%&gt;。
这是您需要做出的改变。
var currLatLng = new google.maps.LatLng(<%rs.Fields("LATITUDE");%>, <%rs.Fields("LONGITUDE");%>);
到
var currLatLng = new google.maps.LatLng(<%=rs.Fields("LATITUDE");%>, <%=rs.Fields("LONGITUDE");%>);