糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 《ArcGIS Runtime SDK for Android开发笔记》——(9) 空间数据的容器-地图MapView

《ArcGIS Runtime SDK for Android开发笔记》——(9) 空间数据的容器-地图MapView

时间:2023-09-02 17:48:50

相关推荐

《ArcGIS Runtime SDK for Android开发笔记》——(9) 空间数据的容器-地图MapView

1、前言

在上一篇内容里介绍了 关于ArcGIS Android开发的未来(“Quartz”版Beta)相关内容,期间也提到了关于API接口的重构,开发思路的调整,根据UC资料也可以知道新版预计将在明年的时候推出。届时在开发思路上将会往新版迁移。

总的来说,虽然“Quartz”版的开发思路有所变化,但总体变化不大,这里我将继续以现有正式发布版本为主梳理ArcGIS Runtime SDK for Android 开发内容。

参考API版本号:version 10.2.7。后续内容若不做特殊说明,均为此版本。

转载请注明出处: /gis-luq/p/4941715.html

2、空间数据的容器

2.1、地图组件MapView概述

地图组件是所有空间数据的容器,是ArcGIS Runtime SDK的核心组件,也是所有GIS应用开发中的入口和基础。在ArcGIS Runtime SDK for Android中,地图组件的类名是MapView,它是Android中ViewGroup的子类,它与很多ArcGIS API中的Map、MapControl类作用是一样的。

MapView提供了完善的地图显示与控制功能:

MapView具有呈现数据的能力,它可以添加一个或多个图层,所有图层只有添加到MapView容器中才能进行显示; MapView可以设置地图的显示范围和比例尺、旋转角度、地图背景、地图的最大/最小分辨率,以及指定当前显示的分辨率/比例尺; MapView提供了丰富的手势监听接口,通过这些监听可以实现各种手势动作,如点击、双击、移动或长按等操作。

特殊说明:MapView默认空间参考及空间范围为所添加的第一个图层的相关信息。

2.2、地图组件MapView的使用

有两种方式可以将MapView添加到应用当中:一个是XML方式,另一个是硬编码方式;一般多采用XML方式,方便调整布局及其属性相关设置。

2.2.1、XML方式添加MapView及初始化底图

<!-- MapView with MapOptions settings for Topo basemap,zoom level, and centered in Costa Mesa, CA. --><com.esri.android.map.MapViewandroid:id="@+id/map"android:layout_width="fill_parent"android:layout_height="fill_parent"mapoptions.MapType="topo"mapoptions.ZoomLevel="13"mapoptions.center="33.666354, -117.903557"/>

MapOptions是用来初始化地图的一些属性的,包括预定义底图类型(MapType)、放大的级别和地图的中心点,它在10.2版本的API中第一次引入。MapOptions的MapType是一个枚举型变量,有GRAY、HYBRID、NATIONAL_GEOGRAPHIC、OCEANS、OSM、SATALLITE、STREETS、TOPO这8个值,分别代表不同风格的底图,这样Android开发者们就不用每次都通过定义ArcGISTiledMapServiceLayer和底图的url来加载底图,也不用每次在初始化的时候费劲的定义底图的放大级别和地图中心点,而是仅用MapOptions的三个属性就可以完成初始化,代码更省,效率更高。

2.2.2、XML方式添加MapView及初始化底图

同样的,MapOptions也可以通过xml和java两种代码的方式使用。上面示例中就是使用xml方式使用MapOptions,下列示例代码是使用Java硬编码的方式使用MapOptions以及将MapView控件添加到应用中。

public class MapViewActivity extends Activity {MapView mapView;MapOptions opt= new MapOptions(MapType.STREETS,33.666354, -117.903557,13);protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.mapviewcenterat);//利用MapOption初始化MapViewmapView = new MapView(this,opt);

//也可以利用实例化ArcGISTiledMapServiceLayer添加底图图层mapView.addLayer(

new ArcGISTiledMapServiceLayer("/ArcGIS/rest/services/World_Street_Map/MapServer"));

}

}

2.3、地图的方法

地图组件MapView是所有空间数据的容器,同时也是控制操作地图的对象,可以在MapView中实现对地图的放大、缩小、平移、单击、长按、以及一些状态的变化时的操作,例如当地图的范围变化时、地图的加载状态改变时等等。下面针对API中关于MapView的公有方法做一个详细说明。

以上内容翻译若有错误,欢迎大家留言批评指出!

文章若无特殊说明均为原创,原创作品,允许转载,转载时请务必以超链接形式标明文章出处、作者信息和本声明。博客:/gis-luq​ 作者:gis-luq 邮箱:luqiang.gis@

如果觉得《《ArcGIS Runtime SDK for Android开发笔记》——(9) 空间数据的容器-地图MapView》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。