MapView
有两种方式可以将 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的更多相关文章
- 调用百度地图API出现 error inflating class com.baidu.mapapi.map.mapview
问题如下 本来以为解决了,但后来重新运行了一下,又坏了,然后改成原来的样子,又好了. 结果就是:对不住了各位看官,没找到解决办法,不过经测试有个地方,可能在程序运行时,出现error inflatin ...
- ios 手动添加mapview
1,首先选中Build Phases ,在Link Binary With Libraries 下添加MapKit.framework框架 2,在头文件(.h文件)处添加:#import <Ma ...
- andriod arcgis保存Mapview为图片
/** * 把一个View的对象转换成bitmap */ private Bitmap getViewBitmap(MapView v) { v.clearFocus(); v.setPressed( ...
- MapView的用法
一.MapView 1.显示用户的位置点(用蓝色圆点标记) mapView.showsUserLocation = YES; 2.代理方法 1> 当定位到用户的位置就会调用 - (void)ma ...
- 解决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- ...
- ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView
原文地址: ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http:/ ...
- ArcGIS for Android 中MapView的地图背景设置
转自:http://blog.csdn.net/wozaifeiyang0/article/details/7535704 根据多方面测速,终于解决了一个蛋疼的问题,MapView的背景设置问题. 在 ...
- Binary XML file : Error inflating class com.esri.android.map.MapView
在测试esri arcgis for android的第一个程序Helloworld的时候,报这样的错: Binary XML file : Error inflating class com.esr ...
- Google Map Android api V2 中使用MapView遇到CameraUpdateFactory is not initialized!的解决办法
先说一下 Map V2 API Key 的问题吧: 在打包APP时需要自己生成一个XXX.keystore 用这个密室库生成的SHA1去申请的key 作为AndroidManifest.xml 中的K ...
随机推荐
- Delphi thread exception mechanism
http://www.techques.com/question/1-3627743/Delphi-thread-exception-mechanism i have a dilema on how ...
- Why isn't there a SendThreadMessage function?
Here's an interesting customer question: Windows has PostMessage and SendMessage. It also has PostTh ...
- SQL扫描并执行文件夹里的sql脚本
场景:项目数据库操作全部使用存储过程实现.每天都会有很多存储过程更新/增加,人工对测试环境中存储过程更新,会有一定概率出现遗漏,也麻烦!所以,需要一个工具将文件夹中所有存 储过程执行一 ...
- linux下oracle11g R2的启动与关闭监听、数据库
su - oracle 切换到oracle账户 lsnrctl start 启动监听 sqlplus /nolog 登陆sqlplus conn /as ...
- WPF RichTextBox 控件常用方法和属性
以下内容转自 http://blog.csdn.net/yulongguiziyao/article/details/25330551. 1. 取得已被选中的内容: (1)使用 RichTextBox ...
- CUDA Memories--CUDA记忆体(翻译+整理+测试)
一边学习一边记录(本文中英结合,专业名词统统不翻译) 在CUDA里,host和devices有不同的记忆体空间. 首先呢,CUDA的memory有很多种类啦 1. Global memory 2. C ...
- acdream 1738 世风日下的哗啦啦族I 分块
世风日下的哗啦啦族I Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1738 Descri ...
- 使用generator自动生成Mybatis映射配置文件
在使用mybatis时,映射文件的配置非常麻烦,对于做逻辑不是很复杂,功能不是特别关键的模块的时候,我们没有必要手动书写,可以使用generator工具生成. generator工具实际上就是根据数据 ...
- Android操作联系人 android开发教程
Android系统中的联系人也是通过ContentProvider来对外提供数据的,我们这里实现获取所有联系人.通过电话号码获取联系人.添加联系人.使用事务添加联系人. 获取所有联系人 1. Andr ...
- onConfigurationChanged is not called&& 翻转屏幕不执行onConfigurationChanged方法&&onConfigurationChanged不执行
我总结出一句话: 如果target sdk>=13,必须使用如下方式声明activity:android:configChanges="orientation|screenSize&q ...