首页 > 代码库 > 创建一个ArcGIS for Android 新项目并显示出本地的地图

创建一个ArcGIS for Android 新项目并显示出本地的地图

  1,我的Android版本是:Android4.4.2.

  2,我的ArcgisAndroidSDK是:arcgis-android-sdk-v10.2.3.

一,地图发布

  首先需要在ArcCatalog(或Arcgis Server Manager,这个貌似需要将文件夹共享)中,发布地图服务.如何发布就不用说了,需要注意的是:

    1)坐标系统选择‘Projected Coordinate System‘->‘World‘下的‘WGS_1984_Web_Mercator‘;

    2)需要选择‘Service Editor‘ 对话框中‘Capabilities‘选项卡中的 ‘Mobile Data Access‘.如图:

二,在eclipse中创建Arcgis Project for Android

  1,在"Package Explore"区域右键,选择"New"->"Project",选择"Arcgis for Android"项,如图:

  2,点击"Next",并输入合适的项目名称,如图:

,

  3,点击"Next"后,输入合适的包名,点击完成,如图(这里选择合适的Target SDK):

,

  4,完成后,得到的package视图为:

三,加载地图

  1,从第二步结束后,eclipse会创建默认的Activity(这里是‘ArcgisAndroidOfflineActivity.java‘),双击打开该 .java文件,修改为:

 1 package juk.demos; 2  3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.view.ViewGroup.LayoutParams; 6  7 import com.esri.android.map.MapView; 8 import com.esri.android.map.ags.ArcGISDynamicMapServiceLayer; 9 10 11 public class TryOfflineActivity extends Activity {12     13     MapView mMapView;14 15     /** Called when the activity is first created. */16     @Override17     public void onCreate(Bundle savedInstanceState) {18         super.onCreate(savedInstanceState);19         setContentView(R.layout.main);20         21         //-----手动添加的部分22         23         mMapView = new MapView(this);24         mMapView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));25         //注意,url中的‘服务器名称‘部分,即这里的‘192.168.1.100‘必须是‘IP‘(虽然我在ARCCatalog中发布地图时,设置为‘localhost‘.26         ArcGISDynamicMapServiceLayer mMAP = new ArcGISDynamicMapServiceLayer("http://192.168.1.100:6080/arcgis/rest/services/china/MapServer");27         mMapView.addLayer(mMAP);28         setContentView(mMapView);29         30       //-----手动添加的部分31     }32 33     @Override34     protected void onDestroy() {35         super.onDestroy();36  }37     @Override38     protected void onPause() {39         super.onPause();40         mMapView.pause();41  }42     @Override43     protected void onResume() {44         super.onResume();45         mMapView.unpause();46     }47 48 }
View Code

  2,另外,由于我的模拟器内存太小,所以额外需要配置根目录下的‘AndroidManifest.xml‘文件为(修改第4行) (注意使用IP):

 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3       package="juk.demos" 4       android:installLocation="auto"    --添加这行 5       android:versionCode="1" 6       android:versionName="1.0"> 7     <uses-sdk android:minSdkVersion="19" /> 8  9     10 <uses-permission android:name="android.permission.INTERNET" />11 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />12 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />13 <uses-feature android:glEsVersion="0x00020000" android:required="true"/> 14 15 16 <application android:icon="@drawable/ic_launcher" android:label="@string/app_name">17         <activity android:name=".TryOfflineActivity"18                   android:label="@string/app_name">19             <intent-filter>20                 <action android:name="android.intent.action.MAIN" />21                 <category android:name="android.intent.category.LAUNCHER" />22             </intent-filter>23         </activity>24 25     </application>26 </manifest>
View Code

具体见我的另一篇博客:Arcgis android - Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

  3,运行结果图为(over):

创建一个ArcGIS for Android 新项目并显示出本地的地图