ArcGIS for Android 自定义地图比例尺

本文介绍了如何在ArcGIS for Android中自定义绘制地图比例尺,包括理解PPI、DPI和.9.PNG图片的概念,以及如何根据地图比例尺动态更新和绘制。通过监听地图缩放事件,实现比例尺的实时调整。
摘要由CSDN通过智能技术生成

      在我们进行地图相关开发时候,避免不了要绘制比例尺。在百度,高德的地图API里都提供了比例尺控件,但是ArcGIS for Android里并没有提供。不过没关系,我们可以自己绘制一个比例尺来。


      在绘制比例尺前,我们先了解几个概念:


  1. PPI,Pixels Per Inch的所写,表示的是每英寸所拥有的像素数目;
  2. PX,像素,表示图像中的一个最小单位;
  3. DPI,Dots Per Inch,每英寸点数,即图像密度;
  4. .9.PNG,Android开发里面的一种特殊的图片,这种格式的图片通过ADT自带的编辑工具生成,使用九宫格切分的方法,使图片支持在Android环境下的自适应展示。即这种类型图片在Android里无论怎样拉伸缩小都不失真。


      其中PPI和DPI在实际生活中的定义是不太一样的,而在Android里,他们的含义却是相似的。单独把DPI拿出来主要是Android里有个方法可以分别获取到屏幕X轴和Y轴的像素密度。


      .9.PNG格式的图片不失真,正好适合我们做来做比例尺图片。


       好了,我们好绘制一个比例尺,需要做些什么呢?


       首先,我们得知道当前地图比例,这个参数可以通过MapView.getScale来获取;


       其次,我们要根据当前地图比例绘制一个比例尺。绘制的方案有两种,一个是固定尺子长度,根据当前地图比例更换比例尺的比,比如1:2000,1:3000等;另一种是固定一些比例单位,比如1:50000后就是1:20000,然后比例尺的长度根据实际长度会做一定伸缩。这里我采用第二种,因为第一种根据实际比例往往比例尺的比值不是整数,并且在较大比例时候显示位数较长,四舍五入又会失去精度。


      最后,是监听地图放大缩小事件,并作出响应改变比例尺。


      方法就是这么简单,那就实际开动吧。


第一步,实例化地图,加载图层:

mMapView=(MapView)findViewById(R.id.mapview);
mMapScaleView=(MapScaleView)findViewById(R.id.scaleView);
String path= StorageUtil.getSDCardRootPath(getApplicationContext());
ArcGISLocalTiledLayer layer=new ArcGISLocalTiledLayer(path);
mMapView.addLayer(layer,0);
mMapScaleView.setMapView(mMapView);
ArcGISRuntime.setClientId(System.clint);//设置许可
mMapView.setMapBackground(0xFAFAFA, 0xffffff, 0.0f, 0.0f);//地图背景


第二步,自定义View,绘制比例尺:

      

      初始化自定义View:

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 94
    评论
评论 94
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值