ArcGIS for Android SDK V10.1.1的已经可以自己添加离线地图了。并且实现的方法也是十分简单。
首先,我们需要了解一下离线加载的ArcGISLocalTiledLayer的API注解:

那么,接下来还需要了解它其中的path路径的格式。它完整的java语句如下:
ArcGISLocalTiledLayer local = new ArcGISLocalTiledLayer("file:///mnt/sdcard/<CacheName>/Layers");
file:///mnt/sdcard/<CacheName>/Layers,这是官方给的一个例子,似乎有些让人费解的就是最后的Layers。其实,将其拆分一下并附带一个例子就很好理解了。
首先是file:///mnt/sdcard/这个头的格式这个是肯定是一样的。除非不把离线地图包放在sd卡上。
其次,后面这<CacheName>/Layers是一个整体。比如,我有一个地图包,名称是Parcels的文件夹
然后下一层的内容就是

在Parcel Map文件夹下就是地图数据文件夹和配置文件

—alllayers里面是大家熟悉的地图数据了。
大致的层次结构就是这样。那么接下来就需要将Parcel整个文件夹拷贝到sdcard的根目录下。根据以上这个范例,我们就可以得到有效的离线地图加载路径是:file:///mnt/sdcard/Parcel/Parcel Map
这样,java代码也就出来了:
public class LocalTiledLayer extends Activity {
MapView map = null;
ArcGISLocalTiledLayer local;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
map = (MapView) findViewById(R.id.map);
// the data is stored on the SDCARD
// the data is created as a tiled cache
local = new ArcGISLocalTiledLayer("file:///mnt/sdcard/Parcel/Parcel Map");
map.addLayer(local);
}
}
initExtent = "-13644840.338547781, 4529944.368315823, -13614265.527233753, 4552875.476801345“
否则,地图可能加载会失败。
综上所述,现在加载离线地图的方法是十分简单的。只需要将放在sd的离线地图包的路径写正确。并且地图的显示范围在初始化时就定义好。就可以实现地图的离线加载了!
本文介绍了如何使用ArcGIS for Android SDK V10.1.1添加本地离线地图。通过理解ArcGISLocalTiledLayer的API和路径格式,如"file:///mnt/sdcard/<CacheName>/Layers",可以成功加载离线地图。关键在于正确设置地图数据文件夹和配置文件的位置,并初始化地图显示范围。
&spm=1001.2101.3001.5002&articleId=8843703&d=1&t=3&u=9c5ae750a5794248a7fe4c99ac78c7cc)
1825

被折叠的 条评论
为什么被折叠?



