最近因为项目更新又关注了一下OsmDroid(https://github.com/osmdroid/osmdroid)这个项目,发现已经更新到了6.1.5版本,除去大部分是bug修复,还多出了一个极为亮眼的功能更新-----shapeFile的支持。
在源码中可以看见多了一个"osmdroid-shape"的项目,如下:
在我们的Android程序中直接添加引用即可增加这个包,
然后如下代码即可加载shapefile数据到地图控件中:
List<Overlay> folder = ShapeConverter.convert(mMapView, new File(myshape));
mMapView.getOverlayManager().addAll(folder);
mMapView.invalidate();
其中myshape是.shp文件的存储路径,每个feature的属性将会被自动设置到overlayer的title这个属性中去。
粗略尝试了一下,线数据在map中会以Polyline对象的形式呈现,然后Point会以Marker对象的形式存在。
但是需注意的是,对于shapefile的支持貌似只支持UTF-8编码形式,GBK的话,会出现部分属性乱码及读取失败的情况。