2010-07-17 88 views
0

我是非常新的ASP和我有一些小项目要做,所以我一些帮助。 我需要编写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(); 
     ... 

这一行 新google.maps.LatLng(<%rs.Fields( “纬度”);%>,<%rs.Fields( “经度”)%>) ; 导致问题。出于某种原因我得到运行时错误: Microsoft JScript运行时错误:参数数量错误或属性赋值无效

+1

可以粘贴生成的JavaScript?查看源代码。 – ankitjaininfo 2010-07-17 18:45:57

回答

2

您的经度和纬度未写入页面。您需要将“=”符号添加到Response.Write的纬度和经度。 <%= rs.Fields(“LATITUDE”)%>相当于<%Response.Write(“Test”)%>。

以下是您需要进行的更改。

var currLatLng = new google.maps.LatLng(<%rs.Fields("LATITUDE");%>, <%rs.Fields("LONGITUDE");%>); 

var currLatLng = new google.maps.LatLng(<%=rs.Fields("LATITUDE");%>, <%=rs.Fields("LONGITUDE");%>);