arcgis android 通過getExtent得到當前地圖范圍四個點的坐標


困擾了我很久的問題終於要得到解決了,先歡喜一下。
我的目的是想做一個當程序完全退出后,再次打開程序地圖直接顯示上次程序退出前地圖的范圍。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?
  1. Envelope rExtent=new Envelope();  
  2. map.getExtent().queryEnvelope(rExtent);  
  3. leftB_x=rExtent.getXMin();  
  4. leftB_y=rExtent.getYMin();  
  5. topR_x=rExtent.getXMax();  
  6. topR_y=rExtent.getYMax();  

這樣,是不是得到了那兩個點的坐標呢,原來很簡單,只是官方文檔不給力啊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM