Android GIS开发系列-- 入门季(10) MapView快速定位到Geometry
我们知道某个Geometry的坐标,但不知道具体的位置,该如何使地图快速定位呢?这时需要用到MapView.setExtent方法,来看下这个方法的介绍:Zooms the map to the given geometry so that geometry fits within the bounds of the map.大体的意思即缩小地图定位到Geometry。上代码:
- public class MainActivity extends Activity {
- private MapView mapView;
- private GraphicsLayer graphicsLayer;
- private static final String TILED_WORLD_STREETS_URL = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mapView = (MapView) findViewById(R.id.map_view);
- mapView.addLayer(new ArcGISTiledMapServiceLayer(TILED_WORLD_STREETS_URL));
- findViewById(R.id.location).setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- //快速定位到线
- Polyline polyline = new Polyline();
- polyline.startPath(new Point(110, 23));
- polyline.lineTo(new Point(115, 25));
- //由于加载的地图是墨卡托坐标,这里需要转坐标
- Polyline polyline2 = (Polyline) GeometryEngine.project(polyline,
- SpatialReference.create(SpatialReference.WKID_WGS84),
- SpatialReference
- .create(SpatialReference.WKID_WGS84_WEB_MERCATOR));
- mapView.setExtent(polyline2);
- }
- });
- initLayer();
- }
- /**
- * 添加一条线
- */
- private void initLayer() {
- graphicsLayer = new GraphicsLayer();
- mapView.addLayer(graphicsLayer);
- Polyline polyline = new Polyline();
- polyline.startPath(new Point(110, 23));
- polyline.lineTo(new Point(115, 25));
- //由于加载的地图是墨卡托坐标,这里需要转坐标
- Polyline polyline2 = (Polyline) GeometryEngine.project(polyline,
- SpatialReference.create(SpatialReference.WKID_WGS84),
- SpatialReference
- .create(SpatialReference.WKID_WGS84_WEB_MERCATOR));
- graphicsLayer.addGraphic(new Graphic(polyline2, new SimpleLineSymbol(
- Color.RED, 3, SimpleLineSymbol.STYLE.SOLID)));
- }
- }
Android GIS开发系列-- 入门季(10) MapView快速定位到Geometry的更多相关文章
- Android GIS开发系列-- 入门季(9) 定位当前的位置
利用MapView定位当前的位置 这里要用到Arcgis中的LocationDisplayManager这个类,由于比较简单.直接上代码: LocationDisplayManager locatio ...
- Android GIS开发系列-- 入门季(8) Json与Geometry的相互转换
在Android中json数据十分普遍,也很实用,在Arcgis中也同样支持Json数据,Json与Geometry可以相互转换,达到我们想要的数据. 一.Geometry转换成Json数据 这个实现 ...
- Android GIS开发系列-- 入门季(14)FeatureLayer之范围查询
Android GIS开发系列-- 入门季(5),这篇文章中,我们知道如何去查找要素.现在有一个需求,查找某点5000米范围的要素,那如何来做呢?首先我们需要在地图上画个5000米半径的圆,然后根据Q ...
- Android GIS开发系列-- 入门季(2) MapView与图层介绍
一.MapView MapView是Arcgis中的最基本的类,与高德地图SDK的MapView的重要性一样.MapView的创建有两种方法,一种是在Layout文件中直接写控件.一种是实例化,Map ...
- Android GIS开发系列-- 入门季(1) 起点
前言 这个系列,待最终完成更新,大家体谅点,第一版本全部是参考的网络教程,最近会逐步的细化更新为可以直接使用的情况. 本系列的开发基于AS ( Android Studio ), 和ArcGIS 的 ...
- Android GIS开发系列-- 入门季(13)Gdal简单写个shp文件
Gdal是用来读写栅格与矢量数据的,在Gdal官网,可以下载相关的资源进行平台的编译.其实Arcgis底层也是用Gdal来读取shp文件的,那在Android中可以直接读写shp文件吗,是可以的.这里 ...
- Android GIS开发系列-- 入门季(12) 显示载天地图
在项目中可以经常需要动态加载一些图层,像投影地图服务.投影地图服务器.其实网上有大量这样的服务,比如天地图官网, . 随便点开一个服务,里面有相关的信息.那如何加载这样图层服务呢. 一.首先感谢这篇博 ...
- Android GIS开发系列-- 入门季(3) GraphicsLayer添加点、线、面
GraphicsLayer是图形图层,可以自定义图形添加到地图上.调用GraphicsLayer的addGraphic方法就能添加图形,此方法要一个Graphic对象,此对象的构造方法是Graphic ...
- Android GIS开发系列-- 入门季(5) FeatureLayer加载本地shp文件与要素查询
FeatureLayer是要素图层,也是Arcgis的主要图层.用这个图层可以加载本地的shp文件.下面我们看怎样加载shp文件到MapView中.查看ArcGis API可知FeatureLayer ...
随机推荐
- Spring data jpa中Query和@Query分别返回map结果集
引用: http://blog.csdn.net/yingxiake/article/details/51016234 http://blog.csdn.net/yingxiake/article/d ...
- java 之冒泡排序
冒泡排序:可以想象成煮开水,气泡在瓶底的时候是比较小的,到达水面的时候达到最大. 冒泡排序的思想:先确定是升序还是降序,这里升序为例.每两个相邻的数字进行比较,前一个数字比后面一个数字大,就将两个数字 ...
- 掌握Spark机器学习库-07-回归分析概述
1)回归与分类算法的区别 回归的预测结果是连续的,分类的预测结果是离散的. 2)spark实现的回归算法有: 3)通过相关系数衡量线性关系的程度
- CDN概述
- PMP项目管理学习笔记(2)——组织、约束和干系人
(一)组织 这里所说的组织,就是我们所说的团队组织架构. 1.组织的类型 职能型: 在这种组织中,项目团队成员总是向职能经理报告,所有事务都有职能经理全权负责. 项目经理的决策需要与职能经理确认. 项 ...
- 正则表达式,匹配查找函数(preg_match_all)flags参数对比
格式: int preg_match_all ( string pattern, string subject, array matches [, int flags] ) 参数 flags 选项有以 ...
- vue之props传值与单向数据流
(1)组件通信 父组件向子组件传递数据.这个正向传递数据的过程就是通过props来实现的. 两者区别:props中声明的数据与组件data函数return返回的数据的主要区别就是props来自父级,而 ...
- JavaSE-08 封装
学习要点 封装 访问控制符 包 封装 没有封装的代码有何缺陷? 例如:对狗狗的健康值赋值为-100.如何避免?——使用封装. 封装的概念 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该 ...
- EasyUI入门,DataGrid(数据表格)
搭建EasyUI 1.进入官网,下载EasyUI的程序包.地址:http://www.jeasyui.com/download/list.php 2.先导入css样式,引入程序包 3.进入EasyUI ...
- 编译压缩代码 MFCompress-src-1.01 :对‘***’未定义的引用
提示 MFCompressD.o:在函数‘main’中:MFCompressD.c:(.text.startup+0x34a): 警告: the use of `tempnam' is dangero ...