首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

构建自个儿的LBS

2012-10-29 
构建自己的LBS原文地址:http://twaver.servasoft.com/?p2908?随着网络和手持终端的迅猛发展,地理数据相关

构建自己的LBS

原文地址:http://twaver.servasoft.com/?p=2908

?

随着网络和手持终端的迅猛发展,地理数据相关的应用已经渗入到了各个应用领域,常见的位置服务例如搜索最近的银行,身边的餐馆,甚至最近的微博好友等等,这些基于位置信息的应用已经是遍地开花,这些应用都是以海量的服务数据为基础的,同时目前在国内被一些所谓的”巨头”把持,并且还不提供友好的免费接口,这就造成了一些技术爱好者无法达成低成本应用该技术的愿望;与此同时,一些企业级的应用需求,例如搜索500米内的基站,10公里内出现故障的终端设备等等,往往也因为购置高昂的相关专业应用软件和数据,而导致项目成本居高不小.今天我们针对这些情况,结合TWaverGIS在实际中的一些应用为大家介绍一种构建自定制LBS(location-based service)的技巧.
TWaverGIS可以非常容易的辅助用户将自己的业务数据和地理数据实现快速混搭,地理特征的数据往往来源于我们项目中购置的地图数据,而需要提供出位置服务的数据,例如终端设备的位置,基站位置,餐馆位置等等这些业务数据则属于特殊需求的图层数据,由于两种数据的性质不同,前者是不太容易省却购买成本的,但是后者由于目前GPS终端的普及而可以很容易的就获取到其位置信息,然后有用户自行购建相关的业务数据层,填充进空间数据库,免除采购成本.这部分可以自定制的数据可以通过高昂的商业软件进行构建和发布,也可以借助TWaverGIS创建维护自己的shp格式数据,生成完全低成本的空间数据,然后借助于GeoServer这个免费的应用服务提供数据发布的服务,通过TWaverGIS实现自己位置搜索、查询和展示,构建自己定制的LBS。
具体的步骤可以参考如下:
第一步:创建自己的空间数据。TWaverGIS对于开源的geotools进行了简单封装,帮助用户创建自定义的shp格式数据,用来构建自定义的数据层。
构建自个儿的LBSSpatialOperateCondition condition = new SpatialOperateCondition(TWaverGisConst.GML_TYPE_POINT);condition.setCoordinates(new GeoCoordinate[]{queryCenter});condition.setUnit("m");condition.setOperatorType(TWaverGisConst.SPATIAL_OPERATOR_TYPE_DWITHIN);condition.setDistance(500);String operation = WFSUtils.buildSpatialOperation(LAYER,new String[]{},condition);System.out.println(operation);GeographyFeature[] features = WFSRequest.requireFeatures(WFS_SERVER_PSTH, operation);if(features==null){return;}for(int i=0;i<features .length;i++){List p = features[i].getPoints();Rack result = new Rack();GeoCoordinate geo = (GeoCoordinate)p.get(0);result.putClientProperty(TWaverGisConst.GEOCOORDINATE, geo);result.setWidthSize(5);result.setHeightSize(5);result.putBodyColor(Color.RED);network.getDataBox().addElement(result);}System.out.println("result num is "+features.length);?当然也可以根据基站的名字或者街道地址什么的进行查询,这些可以通过TWaverGIS提供WFS查询接口进行处理。

热点排行