ArcGIS for Android 之本地离线地图添加(LocalTitledLayer)

本文介绍了如何使用ArcGIS for Android SDK V10.1.1添加本地离线地图。通过理解ArcGISLocalTiledLayer的API和路径格式,如"file:///mnt/sdcard/<CacheName>/Layers",可以成功加载离线地图。关键在于正确设置地图数据文件夹和配置文件的位置,并初始化地图显示范围。

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);

	}
}


这样做完,其实还不够,还需要在main.xml文件中设置一下地图切片的显示范围:

initExtent = "-13644840.338547781, 4529944.368315823, -13614265.527233753, 4552875.476801345“

否则,地图可能加载会失败。

综上所述,现在加载离线地图的方法是十分简单的。只需要将放在sd的离线地图包的路径写正确。并且地图的显示范围在初始化时就定义好。就可以实现地图的离线加载了!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值