首页 文章 精选 留言 我的

精选列表

搜索[Android],共10000篇文章
优秀的个人博客,低调大师

Android GIS开发系列-- 入门季(5) FeatureLayer加载本地shp文件与要素查询

FeatureLayer是要素图层,也是Arcgis的主要图层。用这个图层可以加载本地的shp文件。下面我们看怎样加载shp文件到MapView中。查看ArcGis API可知FeatureLayer的构造方法要传一个FeatureTable,而FeatureTable可用子类ShapefileFeatureTable来实现。代码如下,其中shpPath为shp文件的本地路径。\ privatevoidinitLayer(){ try{ featureLayer=newFeatureLayer(newShapefileFeatureTable( shpPath)); featureLayer.setRenderer(newSimpleRenderer(newSimpleFillSymbol( Color.GREEN))); mapView.addLayer(featureLayer); }catch(Exceptione){ e.printStackTrace(); } } 效果图如下。 这样就可以很简单地加载shp文件了。下面我们来学习一下FeatureLayer的查询。 一、FeatureLayer点击查询主要用到的方法是featureLayer.getFeatureIDs(float x, float y, int tolerance),方法与上一讲GraphicsLayer的查询差不多。可以获取每个要素的属性属性值。 privatevoidhandleSingleTap(floatx,floaty){ long[]featureIds=featureLayer.getFeatureIDs(x,y,8); if(featureIds!=null&&featureIds.length>0){ for(longid:featureIds){ com.esri.core.map.Featurefeature=featureLayer.getFeature(id); Map<String,Object>attrs=feature.getAttributes(); Set<Entry<String,Object>>setEntry=attrs.entrySet(); for(Entry<String,Object>entryItem:setEntry){ Log.e(TAG, entryItem.getKey()+"===="+entryItem.getValue()); } } } } 二、利用FeatureTable查询,这是FeatureLayer特别的地方。比如在一个shp文件中,有多个要素,我们知道有每个要素中有name这个属性,怎样快速查询name为shanghai的要素呢?要用到FeatureTable的queryFeatures(QueryParametersquery,CallbackListener<FeatureResult> callback)方法或者是queryIds(QueryParametersquery,CallbackListener<long[]> callback)这个方法。 privatevoidqueryTable(){ FeatureTablefeatureTable=featureLayer.getFeatureTable(); QueryParametersparameters=newQueryParameters(); //查询条件,有点像数据库中的查询 parameters.setWhere("name='shanghai'");<spanstyle="white-space:pre"></span>Future<long[]>queryIds=featureTable.queryIds(parameters,newCallbackListener<long[]>(){ @Override publicvoidonError(Throwablearg0){ //TODOAuto-generatedmethodstub } @Override publicvoidonCallback(long[]arg0){ //TODOAuto-generatedmethodstub } }); try{ long[]Ids=queryIds.get(); if(Ids!=null&&Ids.length>0){ for(inti=0;i<Ids.length;i++){ Featurefeature=featureLayer.getFeature(Ids[i]); Log.i(TAG,feature.getAttributes().get("name")+""); } } }catch(InterruptedExceptione){ e.printStackTrace(); }catch(ExecutionExceptione){ e.printStackTrace(); } 这样就可以快速查询到某个具体的要素。 Code for all 没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。 本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7751880.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android版:验证手机号码的正则表达式 (转)

/** * 验证手机格式 */ public static boolean isMobileNO(String mobiles) { /* 移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188 联通:130、131、132、152、155、156、185、186 电信:133、153、180、189、(1349卫通) 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9 */ String telRegex = "[1][358]\\d{9}";//"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。 if (TextUtils.isEmpty(mobiles)) return false; else return mobiles.matches(telRegex); } 转自:链接 本文转自SharkBin博客园博客,原文链接:http://www.cnblogs.com/SharkBin/p/5237495.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册