ArcGIS For Android 在地图上显示属性图形信息和属性文本信息

前言

本文使用的是10.2.8的版本。需求是要在切片地图上显示出自定义的村镇界线,森林地块的树种信息等信息。

方法一:

第一种就是利用Symbol类中的TextSymbol来显示,使用的是.shp文件。

TextSymbol textSymbol = new TextSymbol(textSize, labelTag,Color.parseColor(textColor));textSymbol.setFontFamily("DroidSansFallback.ttf");Graphic textGraphic = new Graphic(point, textSymbol);graphicsLayer.addGraphic(textGraphic);

point即是直接读取要素的中心点(亦或是重心点),让文本信息直接显示在地块上面。需要注意将文本的格式设置为DroidSansFallback.ttf。在ArcGIS默认的文本格式是不兼容Android的文本库的。
这种方法只能去显示固定的值,并且通过这种画的方法来显示文本速度是很慢的。对于需要频繁移动地图的操作者来说,卡顿很明显,体验很差。
另外在ArcGIS提供的API中想要获取SHP文件中的Feature对象是很不方便的,需要去查询,因此即时获取它的属性信息就很困难。

方法二:

第二种是利用.geodatabase 文件来显示信息。

Geodatabase geodatabase = new Geodatabase(PathConfig.KB_URL);List geoDatabaseTables =geodatabase.getGeodatabaseTables();for (GeodatabaseFeatureTable geoDatabaseTable : geoDatabaseTables) {FeatureLayer layer = new FeatureLayer(geoDatabaseTable);mMapView.addLayer(layer);}

PathConfig.KB_URL:.geodatabase文件的存放路径。这方法是文本,图形的绘制属性都在.geodatabase文件内部,android代码中不需要处理了,利用这种方法显示信息速度十分快,在大量数据的情况下也能比较流畅。效果图:ArcGIS For Android 在地图上显示属性图形信息和属性文本信息_第1张图片

如果要修改显示的样式,无法在Android中修改,需要去修改.geodatabase文件中的字段,本人是利用火狐浏览器中的SQLiteManeger插件来修改字段的。

经评论指正,修改了:修改的字段在表GDB_ServiceItems中,字段是AdvancedDrawingInfo。

因此这种方法的数据是较固定、难修改的,只能依靠替换.geodatabase文件来更新数据。适合显示一些稳定的信息,例如乡镇地界等。

ArcGIS for Android 在国内使用的很少,在网上能找到的中文资料不多,开发难度还是有点大的,上文的不足甚至错误的地方希望各位能指出。

你可能感兴趣的:(ArcGIS For Android 在地图上显示属性图形信息和属性文本信息)