如何在android上使用openlayers显示地图

 我来答
匿名用户
2017-08-14
展开全部
要知道openlayers是客户端的代码,需要向服务器端请求数据才能知道对象在哪里啊,然后实现定位,从服务器端获得了对象的Extent之后,加上gutter,就可以居中定位地图了;参考实例如下://初始地图functioninit(){vectors=newOpenLayers.Layer.Vector();geojson=newOpenLayers.Format.GeoJSON();map.addLayer(vectors);}//通过DWR异步取得GeoJSon串,交由OpenLayers.Format.GeoJSON来处理.functionlocorie(){//异步发出请求dwrService.orie(orieSeri,function(data){//通过OpenLayers.Format.GeoJSON处理服务端提供的GenJSon串varfeatures=geojson.read(data,"FeatureCollection");if(features){//将结果展示到地图上vectors.addFeatures(features);}});}//十秒更新一次数据functionstartOrie(){vart=setTimeout("locorie();startOrie();",10000);}publicString[]orie(StringorieSeri){StringorieStr="";booleanstate=true;if(null==orieStr||"".equals(orieSeri)){state=false;}intdataSeri=Integer.parseInt(orieSeri);Listlist=null;if(state){//获得dataSeri之后的位置数据Location.getDataSeri>=dataSerilist=locDao.findLocByFlow(dataSeri);}if(state&&(list==null||list.size()==0)){//没有数据state=false;}if(state&&(list.size()==1&&dataSeri==list.get(0).getDataSeri().intValue())){//没有新的数据state=false;}if(state){LineStringline=newLineString();StringBuffergeo=newStringBuffer();PointpointEnd=newPoint();FeaturefeaPoint=newFeature(pointEnd);Mappropoint=newHashMap();feaPoint.setProperties(propoint);for(inti=0;iproperties=newHashMap();properties.put("color","#1A60CA");feaLine.setProperties(properties);Listcomponents=newArrayList();components.add(feaLine);components.add(feaPoint);FeatureCollectionfeaCol=newFeatureCollection(components);orieStr=feaCol.draw();}}服务器端生成json串,用装饰者模式写了一个模块,只要调用这个模块的API就会生成需要的Json串,如下:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式