现在的位置: 首页 > 综合 > 正文

[android学习]ArcGIS for Android

2014年09月05日 ⁄ 综合 ⁄ 共 2306字 ⁄ 字号 评论关闭

2012.11.12 10:30

ArcGIS Runtime SDK for Android v2.0安装

一般的,eclipse安装插件都是使用Help >> Install New Software安装,arcgis当然也不例外,只是今天安装的时候遇到了问题,无法在线安装,找不到content.xml。

无妨,还有离线么。可以到http://resources.arcgis.com/node/agreement/android-sdk下载,需要账号,最新的版本号是2.0,zip压缩包12M。不想到官网下的也可以戳这里http://download.csdn.net/detail/seraph021724/4758368

个人觉得eclipse的插件安装真的好方便大笑 

创建helloword

创建第一个arcgis android程序,可以使用file->new->Arcgis for Android。

我使用原来已有的程序talk,首先添加jar包,properties->java build path->libraries->add library。

arcgis android其实和js差不多,第一步就是要在layout里添加一个容器用于显示地图,在这里是mapview

<!-- MapView layout and initial extent -->
    <com.esri.android.map.MapView
  		android:id="@+id/map"
  		android:layout_width="fill_parent"
  		android:layout_height="fill_parent"
  		initExtent = "-19332033.11, -3516.27, -1720941.80, 11737211.28">
  	</com.esri.android.map.MapView>

在java文件里加载地图,地图就使用arcgisonline的地图

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);
        
     // Retrieve the map and initial extent from XML layout
     		map = (MapView)findViewById(R.id.map);
     		// Add tiled layer to MapView
     		tileLayer = new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer");
     		map.addLayer(tileLayer);
        
        Log.v(TAG, "begin");
        Button btnSubmit=(Button) findViewById(R.id.exit);
        btnSubmit.setOnClickListener(new OnClickListener(){

			public void onClick(View v) {
				// TODO Auto-generated method stub
                finish();//关闭当前Activity  
			}
        	
        });
    }

20121113   21:20

AVD不能调试arcgis for android程序

上面的程序如果直接在模拟器下运行果断报错,java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jincheng.talk/com.jincheng.talk.MapActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class com.esri.android.map.MapView。

原因似乎是因为arcgis for android使用了openGL ES。不能调试的情况根据道听途说有两种,一种是arcgis for android 1.0.1后不能用模拟器调试,还一种是android4.0.3前不能用模拟器调试。不过我使用的android版本是最新,所以,也有可能是两种情况兼而有之?我就不知道了-  -

如果使用真机调试

使用真机调试的重点是手机 驱动的安装,我的三星的驱动装了卸卸了装,kies也是装了卸卸了装,就好像女生卸妆上妆,最后不知道肿么滴就好了,应该还是跟kies有关,因为是kies安装好后重起计算机后自动安装上了驱动,这时可以在CMD中使用adb devices命令看一下情况。

在真机调试时手机的开发->USB调试打勾,并保证手机内存足够,肿么在SDCARD中调试我目前还不知道,或者是要将程序安装进SDCARD?

在<application>标签中加入android:debuggable=”true”

最后,Run As–>Run Configuractions–>Target–>Deployment Target Selection Mode–>选中Launch on all compatible devices/AVD'S 下拉选择 active devices。

这个时候再运行就肯定是在手机上运行了,而且可以成功RUN起来 ,但也还是有可能报错call to OpenGL ES API with no current context (logged once per thread)这个错误似乎不影响地图,具体神马原因暂时未知-  -

抱歉!评论已关闭.