zoukankan      html  css  js  c++  java
  • Arcgis For Android之离线地图实现的几种方式

    为什么要用,我想离线地图的好处是不言而喻的,所以很多人做系统的时候都会考虑用离线地图。在此,我给大家介绍几种Arcgis For Android下加载离线地图的方式。


    在Arcgis For Android API下,既能加载Arc Server的切片文件,也能加载10.1的Title Package文件(*.tpk)。


    一般来说,我们都是将Server的切片文件或者tpk文件复制到自己手机的SD卡上面。下面以我的手机为例说一下文件路径。小编没什么钱,买了一个华为的C8813Q的电信机器,正常来说,安卓的手机都是有运存,内存,和外存(SD卡存储)。运存,是程序运行是所需的存储,在程序运行结束后会有一个销毁的过程,所以运存是不做为存储的,所以,手机的内存和外存才是作为存储的,所以,一般来说,我们的离线地图是放在内存或者外存的,但是,为方便期间,个人建议将离线地图文件放在SD卡中,不支持SD卡的手机就只能放在内存了。如果既有内存,又支持SD卡,一般内存的路径为:file:///storage/sdcard0,SD卡的路径为file:///storage/sdcard1,没有SD卡的路径为:file:///storage/sdcard。


    在Arcgis For Android中,实现离线地图的加载与显示,首先我们需要用Server或者10.1去做离线地图的切片文件或者切片打包文件。用Server做切片文件的大家都知道,就不多说了,切片打包文件可以参考这篇http://blog.csdn.net/arcgis_mobile/article/details/8048549文章,很详细,一看就会。有了离线地图文件,将文件拷贝到手机SD卡中,我的文件路径如下:


    在SD卡的根目录下建了一个文件夹arcgis,将切片文件拷贝到了该目录下面。有了这些离线文件,在程序中需要一个MapView来显示地图:

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

    有了MapView,我们需要

    1、定义一个离线图层

    MapView map = null;
    ArcGISLocalTiledLayer local;

    2、设置离线图源

    在设置里线图源的时候,可以用下面两种方式:

      local = new ArcGISLocalTiledLayer("file:///storage/sdcard1/arcgis/base_map.tpk");
    local = new ArcGISLocalTiledLayer("file:///storage/sdcard1/arcgis/nmg/Layers");

    此外,也可以写成,不过下面这种路径的书写方式不建议,有时候会读取不到。

          local = new ArcGISLocalTiledLayer("file:///mnt/sdcard/arcgis/base_map.tpk");
    local = new ArcGISLocalTiledLayer("file:///mnt/sdcard/arcgis/nmg/Layers");

    3、将离线图层添加到mapview显示。
    map.addLayer(local);

    到此,离线地图的加载与显示已经实现了,更多的功能等你去开发了。不过,你得在配置文件中加入读取外部存储的许可。

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

  • 相关阅读:
    MVC4新功能...压缩和合并js文件和样式文件
    如何将sqlserver表中的数据导出sql语句或生成insert into语句 [转]
    利用svn自动同步更新到网站服务器 -- 网摘
    找不到方法: Int32 System.Environment.get_CurrentManagedThreadId() .
    C# .NET ASP.NET 其中关系你了解多少
    SQL语句分享[不定期更新]
    云平台概念学习
    【转】用户画像和用户档案的区别
    【转】外行杂谈论—聊聊看板 vs 大屏的区别
    【转】从信息、能量、物质的角度揭示生命真相
  • 原文地址:https://www.cnblogs.com/lzugis/p/6539911.html
Copyright © 2011-2022 走看看