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

1.1XML方式

<com.esri.android.map.MapView
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="match_parent">

</com.esri.android.map.MapView>

1.2硬编码方式

MapView map = new MapView(this);
map.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
tileLayer = new
ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Street
_Map/MapServer");
map.addLayer(tileLayer);
setContentView(map );

2.地图的缩放

2.1地图缩放,是地图中最基本的功能,MapView 提供了多种地图缩放的方式,如代码所示:

mMapView.zoomin();
mMapView.zoomout();
mMapView.zoomToResolution(centerPt, res);
mMapView.zoomToScale(centerPt, scale);

对于上面几种缩放方式,前两种主要功能是逐级缩放,调用一次 zoomin()方法地图将放大一级,调用一
次 zoomout()方法地图将缩小一级。
后两种缩放是按照不同的分辨率或比例尺进行的,调用 zoomToResolution(centerPt, res)方法进行缩放
时需要传入两个参数,第一参数 centerPt 为要按照哪个中心点进行缩放,因此需要传入一个 Point 对象才行,
第二个参数为要缩放到的分辨率;zoomToScale(centerPt, scale)和 zoomToResolution(centerPt, res)很类
似,两个方法第一个参数是相同的,而第二个参数不再是分辨率,而是传入地图的比例尺。

3.MapView 还可以设置地图的显示范围、比例尺、分辨率、旋转角度和地图背景色,如:

map = (MapView)findViewById(R.id.map);
……
Envelope env = new Envelope(12957628.58241, 4864247.2803126, 12958114.4225065, 4864490.20036087);//范围
map. setExtent(env)//设置地图显示范围
map. setScale(295828763);//当前显示的比例尺
map. setResolution(9783.93962049996);//设置当前显示的分辨率
//上面三个方法都可以改变地图的显示范围,在代码中是不会同时使用的
map.setMapBackground(0xffffffff, Color.TRANSPARENT, 0, 0);//设置地图背景
map.setAllowRotationByPinch(true); //是否允许使用Pinch方式旋转地图
map.setRotationAngle(15.0); //初始化时将地图旋转15度,参数为正时按逆时针方向旋转。

4.除了上面的功能,MapView 还有一主要的功能:“坐标转换”,这里所说的坐标转换是指,把屏幕坐标转
换成空间坐标或将空间坐标转换成屏幕坐标,示例代码如下:

//给地图添加一个点击事件监听

map.setOnSingleTapListener(new OnSingleTapListener() {
public void onSingleTap(float x, float y) {
// TODO Auto-generated method stub
Point pt = map.toMapPoint(x,y);//屏幕坐标转换成空间坐标
Point screenPoint = map. toScreenPoint(pt);//转换成屏幕坐标对象
}
});

更多关于地图控件的更多操作说明,可参考博文“ArcGIS for Android 地图控件的 5 大常见操作”,地
址:http://blog.csdn.net/arcgis_mobile/article/details/7801467

ArcGIS for Android地图控件的5大常见操作 :http://blog.csdn.net/arcgis_mobile/article/details/7801467

MapView的更多相关文章

  1. 调用百度地图API出现 error inflating class com.baidu.mapapi.map.mapview

    问题如下 本来以为解决了,但后来重新运行了一下,又坏了,然后改成原来的样子,又好了. 结果就是:对不住了各位看官,没找到解决办法,不过经测试有个地方,可能在程序运行时,出现error inflatin ...

  2. ios 手动添加mapview

    1,首先选中Build Phases ,在Link Binary With Libraries 下添加MapKit.framework框架 2,在头文件(.h文件)处添加:#import <Ma ...

  3. andriod arcgis保存Mapview为图片

    /** * 把一个View的对象转换成bitmap */ private Bitmap getViewBitmap(MapView v) { v.clearFocus(); v.setPressed( ...

  4. MapView的用法

    一.MapView 1.显示用户的位置点(用蓝色圆点标记) mapView.showsUserLocation = YES; 2.代理方法 1> 当定位到用户的位置就会调用 - (void)ma ...

  5. 解决ArcGIS Android Could not find class 'com.esri.android.map.MapView'问题

    环境win7 64bit sp1,eclipse 4.2.1 ,android API 16,ADT 23.0.2,arcgis android sdk 10.2.4 从arcgis-android- ...

  6. ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView

    原文地址: ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http:/ ...

  7. ArcGIS for Android 中MapView的地图背景设置

    转自:http://blog.csdn.net/wozaifeiyang0/article/details/7535704 根据多方面测速,终于解决了一个蛋疼的问题,MapView的背景设置问题. 在 ...

  8. Binary XML file : Error inflating class com.esri.android.map.MapView

    在测试esri arcgis for android的第一个程序Helloworld的时候,报这样的错: Binary XML file : Error inflating class com.esr ...

  9. Google Map Android api V2 中使用MapView遇到CameraUpdateFactory is not initialized!的解决办法

    先说一下 Map V2 API Key 的问题吧: 在打包APP时需要自己生成一个XXX.keystore 用这个密室库生成的SHA1去申请的key 作为AndroidManifest.xml 中的K ...

随机推荐

  1. Delphi thread exception mechanism

    http://www.techques.com/question/1-3627743/Delphi-thread-exception-mechanism i have a dilema on how ...

  2. Why isn't there a SendThreadMessage function?

    Here's an interesting customer question: Windows has PostMessage and SendMessage. It also has PostTh ...

  3. SQL扫描并执行文件夹里的sql脚本

    场景:项目数据库操作全部使用存储过程实现.每天都会有很多存储过程更新/增加,人工对测试环境中存储过程更新,会有一定概率出现遗漏,也麻烦!所以,需要一个工具将文件夹中所有存         储过程执行一 ...

  4. linux下oracle11g R2的启动与关闭监听、数据库

    su - oracle           切换到oracle账户 lsnrctl start          启动监听 sqlplus /nolog     登陆sqlplus conn /as  ...

  5. WPF RichTextBox 控件常用方法和属性

    以下内容转自 http://blog.csdn.net/yulongguiziyao/article/details/25330551. 1. 取得已被选中的内容: (1)使用 RichTextBox ...

  6. CUDA Memories--CUDA记忆体(翻译+整理+测试)

    一边学习一边记录(本文中英结合,专业名词统统不翻译) 在CUDA里,host和devices有不同的记忆体空间. 首先呢,CUDA的memory有很多种类啦 1. Global memory 2. C ...

  7. acdream 1738 世风日下的哗啦啦族I 分块

    世风日下的哗啦啦族I Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1738 Descri ...

  8. 使用generator自动生成Mybatis映射配置文件

    在使用mybatis时,映射文件的配置非常麻烦,对于做逻辑不是很复杂,功能不是特别关键的模块的时候,我们没有必要手动书写,可以使用generator工具生成. generator工具实际上就是根据数据 ...

  9. Android操作联系人 android开发教程

    Android系统中的联系人也是通过ContentProvider来对外提供数据的,我们这里实现获取所有联系人.通过电话号码获取联系人.添加联系人.使用事务添加联系人. 获取所有联系人 1. Andr ...

  10. onConfigurationChanged is not called&& 翻转屏幕不执行onConfigurationChanged方法&&onConfigurationChanged不执行

    我总结出一句话: 如果target sdk>=13,必须使用如下方式声明activity:android:configChanges="orientation|screenSize&q ...