百度地图【javaweb版的】上
这个花了我好长的时间,整理一下,以后还可以看看~
1.第一步:标注
从数据库中取出来我想要的信息,如下
- devX devY No
- x坐标 y坐标 编号
定点就要取坐标这很好理解。
由于博主我自己是用SSH框架的 。
1.1响应的数据库语句如下:
String hql="select a.No,a.devX,a.devY from AL as a ";
用list来存放:
try{
List list=(List)this.find(hql);
if(!list.isEmpty())
return list;
return null;
}catch(Exception e){
e.printStackTrace();
return null;
}
从后台拿到的list要用jsonarray传到前端
再用ajax接收。
jsonArray和list的转换也是一个有意思的点,可以拓展一下~。
1.2Ajax
``
$.ajax({
type:"POST";
url:url;//对应的action拿到jsonarray
data={},
dataType:"json",
//注意 这里的jsonArray是一个二维数组
success: function(jsonArray){
for(var i=0;i<jsonArray.length;i++)
{
var p0=jsonArray[i][0];//x坐标
var p1=jsonArray[i][1];//y坐标
var No=jsonArray[i][2];//编号
var point =new BMap.Point(p0,p1);//利用百度api标注的功能找到标注点
var marker=new BMap.Marker(point);//创建默认标注
}
},fail:function(){
alert("error");
}
});```
这样我们就把数据库中的点标注在了地图上
2.然而我的标注需要添一点东西:我希望把默认标注上方贴上我的号码。
like this:
其实很简单:加个文本框就行了
代码如下:
var myLabel=new BMap.Marker(No,{offset: new BMap.Size()});//文本框的内容编号,偏移量
myLabel.setStyle{background:""}//设置背景颜色
marker.setLabel(myLabel);
是不是很简单呢~
2.说标注就必说信息窗口
关于信息窗口 大家去看百度apihttp://developer.baidu.com/map/jsdemo.htm#c2_3就可以 很详细