您的位置:首页 > 移动开发 > Android开发

arcgis android 通过getExtent得到当前地图范围四个点的坐标

2016-04-07 13:57 465 查看
困扰了我很久的问题终于要得到解决了,先欢喜一下。
我的目的是想做一个当程序完全退出后,再次打开程序地图直接显示上次程序退出前地图的范围。arcgis for android官方软件就有这个功能。网上搜索了一些关于activity保存状态的方法,但是这些方法只能保存非销毁后的Activity,即当程序完全退出后,采用这种方法程序是不能保存Activity状态的。所以想着用数据库保存状态的方法。
我的方法是初始化的时候去读取数据库,如果里面有Extent的记录,则加载这条记录作为iniExtent的值,如果没有则插入一条记录初始化,以后程序退出前,获取当前的extent,将这个矩形的左下角及右上角两个点坐标更新到数据库有,以便下次程序启动时调用。
动态设置地图初始范围不难,直接用map.setExtentEnvelope envelope);方法就可以了。但是要获取地图范围的那两个点坐标,花了点我的时间,开始以为直接用map.getExtent()方法就Ok,但是仔细一看,这个方法返回一个polygon对象,而不是setExtent()方法里所需要的Envelope参数类型,一想,肯定需要转换,但查官方API文档,硬是没有,时间都花这里了。后来看到一编文章,http://blog.csdn.net/wozaifeiyang0/article/details/7327729,这编文章给我我启发,感谢这位兄台。是的,用map.getExtent().queryEnvelope(envelope);这个方法得到了我想要的结果。

代码奉上

[html] view plain copy

print?

Envelope rExtent=new Envelope();

map.getExtent().queryEnvelope(rExtent);

leftB_x=rExtent.getXMin();

leftB_y=rExtent.getYMin();

topR_x=rExtent.getXMax();

topR_y=rExtent.getYMax();

这样,是不是得到了那两个点的坐标呢,原来很简单,只是官方文档不给力啊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: