<script type="text/javascript"> //创建和初始化地图函数: var infoWindow; var map = new BMap.Map("dituContent");//在地图容器中创建一个地图 <s:iterator value="tyList" var="ty" > var point = new BMap.Point(<s:property value="#ty.dtjd" />,<s:property value="#ty.dtwd" />);//定义一个中心点坐标 map.centerAndZoom(point, 13);//设定地图的中心点和坐标并将地图显示在地图容器中 var marker = new BMap.Marker(point); // 创建标注 map.addOverlay(marker); // 将标注添加到地图中 var opts = { width : 250, // 信息窗口宽度 height: 100, // 信息窗口高度 title : "个人基本信息" // 信息窗口标题 } marker.addEventListener("click", function () { var sContent = "<h4 style='margin:0 0 5px 0;padding:0.2em 0'>个人基本信息</h4>" + "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>姓名 : <s:property value="#ty.xm" />,</br>工作单位 : <s:property value="#ty.gzdw" /><br/>家庭住址 : <s:property value="#ty.jtzz" /></p>" + "</div>"; var infoWindow = new BMap.InfoWindow(sContent); this.openInfoWindow(infoWindow);}); </s:iterator> initMap();//创建和初始化地图 function initMap() { setMapEvent();//设置地图事件 addMapControl();//向地图添加控件 } //地图事件设置函数: function setMapEvent() { map.enableDragging();//启用地图拖拽事件 map.enableScrollWheelZoom();//启用地图滚轮放大缩小 map.disableDoubleClickZoom();//禁用鼠标双击放大 map.disableKeyboard();//禁用键盘上下左右键移动地图,默认禁用(可不写) } //地图控件添加函数: function addMapControl() { //向地图中添加缩放控件 var ctrl_nav = new BMap.NavigationControl( { anchor : BMAP_ANCHOR_TOP_LEFT, type : BMAP_NAVIGATION_CONTROL_LARGE }); map.addControl(ctrl_nav); //向地图中添加缩略图控件 var ctrl_ove = new BMap.OverviewMapControl( { anchor : BMAP_ANCHOR_BOTTOM_RIGHT, isOpen : 1 }); map.addControl(ctrl_ove); //向地图中添加比例尺控件 var ctrl_sca = new BMap.ScaleControl( { anchor : BMAP_ANCHOR_BOTTOM_LEFT }); map.addControl(ctrl_sca); } </script>
经纬度是从我自己的数据库中读取的...现在页面有上很多个点.好几个千个点,导致页面加载很卡很慢 求解决办法...
几千个点,自然会卡一点的。其次跟网速也有关系的,再就是你写的javascript有关。你也只能控制javascript了。所以建议你优化一下javascript,例如:
var infoWindow;
var map = new BMap.Map("dituContent");//在地图容器中创建一个地图
可以设置成局部变量。尽量少搞全局的。
300-400都卡啦!!
1、只显示视图范围内的坐标
2、密集的坐标只显示1个 (显示1000个和显示100效果没有什么不同的)
能给点传送门么