简介
arcgis在安卓中专业级位置服务中发挥了很大的作用,当然主要目的不是为了像百度地图那样显示地图,它包含了很多很多百度地图等不具备的功能。一般使用它都是用的范围很大的shp文件做底图,但是也有只需要显示小范围位置的需求(范围太大tif文件很大),这样我们就可以使用实景照片来当做底图,这样有很大的好处(好装逼~)。
如果要用实景图片的话,那就需要用到栅格图层(RasterLayer),使用它来加载TIF图片。
制作tif图片
1.如果只是测试一下功能,可以直接使用工具下载一个tif格式的卫星图片。
我这里是使用的是BIGEMAP地图下载器,操作如下,进入软件然后在地图上框下需要下载的区域,双击下载。
2.自己自定义制作,使用ArcMap工具把自己拍摄的实景图片打上位置坐标,最后保存成tif格式。
下载安装地址:https://www.jb51.net/softs/572149.html
安装好后,就需要用这个软件配准图片,也就是给图片打上位置坐标,好让它在地图上准确的位置显示。下面就让我们给图片打上点。
把图片拖入到工作区,然后显示出georeferencing工具,用它来给图片配准。
然后在图片上打4个点,点击图片上位置然后右键,输入当前点位需要在地图上显示实际位置的高斯坐标(我是随便写的坐标,你们要写实际的)。
四个点位打完后显示如下
然后点击updata更新,就配准成功了
然后就可以开始导出成tif图片了
具体的导出配置如下,如果不修改上面上个打红色标记的地方,导出的图片将会是全黑或者损坏。如果如图这样选择了还是黑色或损坏那可能是arcMap软件没关,关了再重新打开tif图片试试。
这样tif图片就生成好了。
使用tif图片
android中使用arcgis,相信大家都很熟悉,首先添加操作依赖包。
布局中添加使用
<com.esri.android.map.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layerType="software"
/>
arcgis使用tif图片
private MapView mapView;
private FileRasterSource rasterSource ;
private RasterLayer rasterLayer;
mapView = findViewById(R.id.mapView);
//自定义图片当底图 栅格图层
try {
//获取tif图片
rasterSource = new FileRasterSource(Environment.getExternalStorageDirectory().getPath() + "/Map/data.tif");
//创建包含的tif图片的栅格布局
rasterLayer = new RasterLayer(rasterSource);
//添加图层到地图
mapView.addLayer(rasterLayer);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
mapView.setMapBackground(Color.WHITE, Color.WHITE, 0, 0);//设置背景为白色
下载的tif最后在手机上显示如下
自己制作的tif最后在手机上显示如下
总结
这样就大功告成了,简不简单~~,但是我为了达到这个需求弄了很久才找到这种方法(心累~~),这样的图片背景跟shp文件的底图有着同样的功能,同样会随着放大缩小,并且可以在上面绘制各种图形。