Google Map二次开发——API方式

来源:互联网 发布:icon在线转换软件 编辑:程序博客网 时间:2024/06/05 10:01

 首先来看一个很好的应用实例 http://www.housingmaps.com/, 这是一个卖房子的网站,将买卖信息使用GIS标注。

    除此以外,http://googlemapsmania.blogspot.com/, 这里记录了所有使用GM的应用,首页上描述“总统竞选分布”的应用个人觉得比较无聊。不过看看这些应用,发现都是用的美国的地图,中国都选不上,很郁闷。

   后头再来说我想做的工作,实际是一个基于GIS的快递追踪的应用。Demo版本是一点点丰富起来的,最初就是一个HTML页面,请求Google服务器的地理信息,显示位置和连线。后来发现,Google提供的这种地址按名称译码的功能对于在线应用来说,耗时而且不能保证正确性,所以进化方案为使用应用程序批量POST请求,将地址信息全部存储到本地数据库中去。这里持久层使用了Hibernate,简化了代码编写(框架部署是要耗点时间的)。这两部分完成,相当于地图显示和地理数据都齐全了,准备工作至此告一段落。我又将Struts引入了设计框架,思路是这样的:客户端提交一个订单请求,服务端处理这一请求,派发给地图显示的页面。这中间的控制就是Struts的战场,当然引入它更主要的是考虑到后面复杂的控制需要。接下来的问题似乎更复杂了,Action似乎引入了业务处理(根据单号读取数据库),而且由于Google Map使用的都是js,服务端和客户端传送显示对象是个大工程,而且处理不好就可能破坏结构。怎么办呢?后来我想到用Ajax远程调用服务端的方法解决问题,这个思路和Google Map一致,在同一个页面内调用Google Map的js也更方便些。于是又有了将DWR融入框架的想法,做了个DWR调用远程方法返回对象数组的Demo发现可行,于是开始了框架的整合。首先是Struts控制页面跳转,但将业务处理移出Action的excute方法。跳转到地图显示页面时,Ajax调用方法查询数据库,取得要显示的数据,等待返回后使用Map API显示出来,整个Demo建设过程结束。

     总结一下,中间遇到问题无数,解决的方式也是各种各样。现在能想起来的有DWR的配置,对象转换的参数名都是首字母小写的(大写是不能被识别的),书写的顺序好像是和bean定义的顺序相反(这个没有验证,因为后来发现不用<param>标签更好用)。还有各种稀奇古怪的js错误提示,也让人很崩溃,完全不知所云,比如下面这个,在使用Map API时报错“this.C  has no properties”,竟然是定义GLatLng对象没有new造成的。还有Hibernate2配置SQLServer的时候也遇到一堆问题(比如配置文件和映射文件应该放在src下,无论是App还是Web),可惜比较久远了,忘得差不多了,就记得3和MyEclipse结合后就比2好用多了,建议学习的时候看2的理论和设计,实践的时候使用3+MyEclipse。

    (本文有时间还是会继续补充的。这个过程有个PPT记录,作为项目文档保留。)


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/anna_yu_06/archive/2008/11/01/3197188.aspx

原创粉丝点击