ArcGIS for Android示例解析之地图旋转-----MapRotation
2012-03-06 09:16
465 查看
MapRotation
添加地图控件,并且为地图容器中添加地图服务上面已经介绍完了,下面我们来个复杂一点的,这个例子主要实现了地图的旋转功能,下面来看一下应用的布局文件main.xml,内容如下:<com.esri.android.map.MapView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" initExtent="-1.3296373526814876E7 3930962.41823043 -1.2807176545789773E7 4201243.7502468005"/> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/test" android:background="@drawable/picture" > |
下面我们来看一下MapRotation.java文件中的代码:
setContentView(R.layout.main); map = (MapView) findViewById(R.id.map); ArcGISTiledMapServiceLayer url=new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer");//定义一个切片服务 map.addLayer(url);//添加切面服务到map中 //设置地图可以旋转,通过设置这个属性我们就可以对地图进行旋转操作了 map.setAllowRotationByPinch(true); compass = new Compass(this,null);//定义的指北针旋转算法 map.addView(compass);//添加指北针到map中 test = (ImageButton)findViewById(R.id.test); |
map.setAllowRotationByPinch(true); 为真即可,而下面的代码中定义了再地图旋转时的一些事件监听及其处理操作,如下:
//添加点击一下地图控件时监听的事件及其处理操作 map.setOnSingleTapListener(new OnSingleTapListener() { private static final long serialVersionUID = 1L; @Override public void onSingleTap(float x,float y) { //设置map的旋转角度为0 map.setRotationAngle(0); //设置指北针的角度 compass.setRotationAngle(map.getRotationAngle()); //重新绘制指北针 compass.postInvalidate(); } }); //给map添加一个两手指捏及其旋转的事件监听及其处理操作 map.setOnPinchListener(new OnPinchListener() { private static final long serialVersionUID = 1L; @Override public void prePointersUp(float arg0,float arg1,float arg2, float arg3, double arg4) { //获取地图的当前地图旋转角度 map.getRotationAngle(); //设置指北针的角度 compass.setRotationAngle(map.getRotationAngle()); //重新绘制指北针 compass.postInvalidate(); } @Override public void prePointersMove(float arg0,float arg1,float arg2, float arg3, double arg4) { // TODO Auto-generated method stub } @Override public void prePointersDown(float arg0,float arg1,float arg2, float arg3, double arg4) { // TODO Auto-generated method stub } @Override public void postPointersUp(float arg0,float arg1,float arg2, float arg3, double arg4) { // TODO Auto-generated method stub } @Override public void postPointersMove(float arg0,float arg1,float arg2, float arg3, double arg4) { // TODO Auto-generated method stub } @Override public void postPointersDown(float arg0,float arg1,float arg2, float arg3, double arg4) { // TODO Auto-generated method stub } }); |
到此Map_View中的例子已经介绍完毕,在例子中的都是一些基本的操作没有什么过于复杂的,稍后的例子中将深入了解ArcGIS for Android的大千世界。
相关文章推荐
- ArcGIS for Android示例解析之添加地图服务-----AddLayer
- ArcGIS for Android示例解析之离线地图-----LocalTiledLayer
- ArcGIS for Android示例解析之离线地图-----LocalTiledLayer
- ArcGIS for Android示例解析之FeatureLayer服务-----SelectFeatures
- ArcGIS for Android示例解析之空间查询-----QueryTask
- ArcGIS for Android示例解析之添加bingMap-----AddBingMap
- ArcGIS for Android示例解析之高亮要素-----HighlightFeatures
- ArcGIS for Android示例解析之高亮要素-----HighlightFeatures
- ArcGIS for Android示例解析之空间查询-----QueryTask
- ArcGIS for Android示例解析之标绘-----DrawGraphicElements
- ArcGIS for Android示例解析之GP服务调用-----ViewShed
- ArcGIS for Android 体验(一) 添加地图
- Arcgis For Android之离线地图实现的几种方式
- ArcGIS for Android地图控件的5大常见操作
- ArcGIS For Android 解析WKT [支持多多边形、岛、洞]
- Delphi XE10 加载ArcGIS for Android Jar包, 并成功显示在线地图
- arcgis for android 加载jpg格式的影像地图显示不出的问题
- ArcGis for Android中如何获取自定义图层中的图片并旋转
- 记录我在百度地图开发和ArcGIS for Android开发时出现的一些错误及解决方案(后续更新)
- 基于Arcgis for Android runtime在地图上画圆