Asp和JavaScript结合循环、语法等问题求解。。。百度地图
本帖最后由 ddzuimei 于 2013-04-25 15:36:33 编辑
求大侠指点迷津:
想利用asp循环使中间的js代码实现如下效果:
(每循环一次,将表中新的point值赋给mypoint数组)
index.asp
var mypoint=new Array();
mypoint[i]=new BMap.Point(<%=rs("point")%>);
var marker0=new BMap.Marker(mypoint[0]); 第1次循环
var marker1=new BMap.Marker(mypoint[1]); 第2次循环
var marker2=new BMap.Marker(mypoint[2]); 第3次循环,下面相同
map.addOverlay(mymarker[i]);
var opts0={offset:new BMap.Size(0, -25), title:'<%=rs("name")%></span>'};
var opts1={offset:new BMap.Size(0, -25), title:'<%=rs("name")%></span>'};
var opts2={offset:new BMap.Size(0, -25), title:'<%=rs("name")%></span>'};
infoWindow0 = new BMap.InfoWindow("", opts0);
infoWindow1 = new BMap.InfoWindow("", opts1);
infoWindow2 = new BMap.InfoWindow("", opts2);
mymarker0.addEventListener("mouseover", function(){this.openInfoWindow(infoWindow);});
mymarker1.addEventListener("mouseover", function(){this.openInfoWindow(infoWindow);});
mymarker2.addEventListener("mouseover", function(){this.openInfoWindow(infoWindow);});
function openMyWin(id,p){ map.openInfoWindow(id,p); }
现在的方法没能实现,百度地图上可以生成标注,但就是弹不出信息框,如果能实现上面的效果就好了。关键是javascript不能支持类似 var "mymarker"+i=new BMap.Marker(mypoint[i]);的语句,当i为0时,var marker0=new BMap.Marker(mypoint[0]);依此类推。。。
现在的方法是用数组代替。var mypoint=new Array();mypoint[0]=new BMap.Marker(mypoint[i]);但实现不了效果,估计语法错了。部分代码如下:
<script type="text/javascript">
//创建地图实例
var map=new BMap.Map("container");
//创建点坐标
var point=new BMap.Point(112.012831,28.186718);
//初始化地图,设置中心点坐标和地图级别
map.centerAndZoom(point, 15);
//向地图添加控件
map.addControl(new BMap.NavigationControl()); //地图平移缩放控件,默认左上角
map.addControl(new BMap.OverviewMapControl({isOpen: 1})); //缩略地图控件,默认右下角
map.enableScrollWheelZoom(true); //启用鼠标滚动缩放地图
map.enableKeyboard(); //启用键盘上下左右键移动地图
</script>
<%
...连接数据库略
set rs=server.createobject("adodb.recordset")
sql="select * from MyPoint"
rs.open sql,conn,1,1
allrecorde=rs.recordcount '获取总记录数
dim point()
dim marker()
for i= 1 to allrecorde '循环显示数据
if rs.eof then '显示过程中随着游标下移,一旦记录到最后就立刻退出循环
exit for
end if
%>
<script type="text/ja