通过上面章节,我们已经了解如何配置一个ArcGIS Runtime for Android开发环境,下面我们将介绍如何使用Eclipse创建一个ArcGIS移动项目Hello World Map,并且分析项目的相关结构。
1、 创建项目
打开我们已经配置好的Eclipse工具,在我们的工作区右键创建ArcGIS移动项目,如图:
右键工作区-->New-->Other…,点击Other…选项后在弹出的窗体中选中ArcGIS Project for Android选项,如图所示:
在上面的窗体中点击Next按钮跳转到创建项目界面如图:
在Project Name输入框中输入我们要创建的项目名称,如:HelloWorldMap;输入完项目名称点击Next按钮跳转到应用设置界面如图:
我们需要修改Package Name输入框的包结构名,如:com.esri.demo;修改完点击Finish按钮,此时我们的项目已经创建完毕了。
2 、 项目结构
根据上图,我们可以发现ArcGIS项目与普通的Android项目基本相同,下面我们来整体介绍一下ArcGIS的项目结构:
这个不用多说,大家都应该知道,这是存放java源码的目录,目录里的文件是根据package结构管理的。
/gen也是一个源代码目录,但里面的Java文件是由android平台自动生成的,而这个目录下的R.java类文件是由Android Framework负责管理的,不需我们手动操作,在gen中你可能会发现有一个BuildConfig.java文件,在早先的版本中是没有这个文件,他是Android ADT更新后来添加,它的作用是检查你的代码,不断运行调试。
这里是项目中所需要的java函数库,比普通的Android项目多了ArcGIS的函数库。
我们可以将所需的文件放在assets目录中进行存储,方便我们访问。/assets中的资源文件与/res中的功能很相似,都是存放资源文件的目录,但/assets中的资源不会像/res中的资源那样为每个资源文件生成ID标识。
对于/bin我们并不陌生,这个目录是存放编译后生成的应用程序,如:HelloWorldMap.apk就是我们编译生成的应用程序安装文件。
/libs目录下存放的是一些项目所需的动态链接库,对于ArcGIS项目中它默认存放了两个GIS所需的动态链接库,当然我们也可以添加一些我们所需的其他动态链接库。
/res目录存放了我们所需的大部分的资源,默认目录下有三类资源:drawable目录主要存放一些图片、layout目录主要放一些布局文件、values目录主要存放一些项目中所需的参数值文件;当然除了这些还有一些其他分类,如anim和xml目录等等,在此不再一一介绍。
这个文件我们应该不会陌生,这个xml文件是我们项目的一个系统配置文件,它包含了activity(行为)、view(视图)、service(服务)之类的信息,以及运行这个android应用程序需要的用户权限列表,同时也详细描述了android应用的项目结构。
3、 编码实现
介绍完ArcGIS的项目结构,我们来分析一下代码区,看看如何才可以让我们正常显示地图。
打开HelloWorldMapActivity.java文件,简单修改一下代码,代码如下:
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- mMapView = new MapView(this);//实例化MapView对象
- mMapView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
- ArcGISTiledMapServiceLayer tileLayer = new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer");//实例化图层
- mMapView.addLayer(tileLayer);//添加图层
- setContentView(mMapView);
- }
通过上面代码我们可以了解到,要想显示地图,首先我们必须创建一个MapView对象,然后创建一个Layer图层对象,并将其添加到Mapview中进行显示。在本示例中添加的一个ArcGISTiledMapServiceLayer图层,显示的效果,如下图所示:
原文链接:http://blog.csdn.net/arcgis_mobile/article/details/8124005