今天偷懒的时间有些多,不过也完成了一些工作,修复了 几个bug。之前在地图上显示自己(登录用户)位置的标记,是直接使用:

var Marker = new google.maps.Marker({

position : initialLocation,

map : map,

title : “My Position”

});

这语句新建一个marker对象的方式直接实现的,这个语句置于一个不断获取位置信息的函数之中(navigator.geolocation.watchPosition(function(position) {})。这样实现会出现的问题是,每获得一次位置信息,都会在地图上新建一个标记。因此改动了一下代码。首先将Marker定义成全局变量,然后将上述那段代码放入一个条件语句中,改成下边这样:

if(Marker == null){

myMarker = new google.maps.Marker({

position : initialLocation,

map : map,

title : “My Position”

});

}else{

Marker.setPosition(initialLocation);

}

这样每次执行更新位置信息的函数时,不会一直新建标记了。

  完成这项工作之后,看到自己几乎把所有的CSS、JS代码都放在index.jsp文件中,非常凌乱。因此重新整理了代码,将CSS、JS全都放到单独文件之中。把JS代码分离出去后,出现了一个小问题,JS代码中有一句获得JSP变量的语句不能正常执行,以致获取不到变量值了。自己思考了一会儿之后觉得有两种解决方法,一种是把JSP变量作为参数传到JS函数中,另一种更简便的方法是,把这句语句单独拿出放在JSP页面之中,我选择了后一种方法,暂时完美解决这个问题。

  晚上一直在和人聊天,做的工作果断少了许多。对于昨天的日志中计划的今天的任务,仅仅完成了最基本的任务:按一下一个按钮后在地图上显示一个好友的位置标记。好友位置不是从数据库取出的而只是一个定死的值。其实就是用了上边那块代码,相当简单:

fLocation = new google.maps.LatLng(24.8503787,102.8621222); if(fMarker == null){

fMarker = new google.maps.Marker({

position : fLocation,

map : map,

title : “susan”

});

}else{

fMarker.setPosition(fLocation);

}

这是放在某个jquery函数中的。除此之外还写了一个用于向数据库查询好友坐标信息的JSP文件,暂时还没有用上。

  明天(2012-11-23)的任务:点击好友列表中好友,显示一个弹窗,弹窗中有一些相关信息,以及一个按钮,按下按钮后在地图显示该好友的位置(位置信息是从数据库查询来的)。有时间的话,可以研究一下如何在地图标记上方再显示一些简单的信息。

  只有一个月都不到的时间来完成这个毕业设计了,真的不能考虑过多的东西。到时首先拿出一个粗糙的原型给老师交差吧,等找到了工作之后再细细优化修改,毕竟这暂时只不过是个毕业设计而不是商业项目,况且我的观点是这类应用做成客户端才会有价值,现在谁还会在手机上没事打开交友网站啊,现在是app的天下了。