Osmdroid源码资源及简单研究

1.首先了解一下OSM

        OpenStreetMap(简称OSM)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。详见百度百科维基百科

2. OSM的一些文章

  1. 参考http://blog.csdn.net/scy411082514/article/details/7471499此篇文章,介绍比较详细。
  2. www.OpenStreetMap.org 地图网址
  3. OSM在android端的应用http://wiki.openstreetmap.org/wiki/Android#OpenStreetMap.org
  4. osmdroid编译源码:http://blog.csdn.net/qq_30124547/article/details/53114743
  5. osmdroid基本的用法(博客写的时候版本有点老,现在最新5.5,但基本上没怎么变):http://blog.csdn.net/youngkingyj/article/details/44200057
  6. osmdroid最新源码:
  7. osmdroid最新demo:

3. osm源码简单介绍

         

         1.  openStreetMapViewer---------是osmdroid整体的一个demo,对于各种操作画点线多边形等等的操作

         2.  osmdroid-android-------------是osmdroid的源码,使用jar包,或者使用源码都可,后者扩展性更好

         3.  osmdroid-third-party----------osmdroid提供支持其他的地图,示例中提供了bing和google(需要翻墙)(将有专门的一篇文章介绍)

         4.  其他的暂时没有研究。


4. 地图瓦片tile介绍

        可以参考博客:http://blog.csdn.net/happyduoduo1/article/details/51781024

        百科:http://www.baike.com/wiki/瓦片地图

4.  支持离线,也可以浏览缓存地图,自定义缓存大小

         osmdroid地图默认是支持缓存地图的,即加载地图的逻辑就是先从sdcard对应目录加载地图,如果没有,则从网络获取。

         org.osmdroid.tileprovider.constants.OpenStreetMapTileProviderConstants这个类包含一些静态常量,许多关于缓存的设置也在这个类里,咱捡几个来看。

         缓存地图的位置在sdcard的根目录下的osmdroid文件夹,浏览下载的目录也是它

       

    private static File OSMDROID_PATH = new File(Environment.getExternalStorageDirectory(),"osmdroid");
    //缓存路径的set、get方法,可以自己设置缓存目录,也可以自行下载地图放入对应的文件夹。
    public static File getBasePath(){
          return OSMDROID_PATH;
     }
    public static void setOfflineMapsPath(String path){
          OSMDROID_PATH = new File(path);
     }

    //从注释也可以看出来,定义了缓存的有效期和默认瓦片缓存的大小,都有对应的set方法
    /** 30 days */
    public static final long TILE_EXPIRY_TIME_MILLISECONDS = 1000L * 60 * 60 * 24 * 30;

    /** default is 600 Mb */
    public static long TILE_MAX_CACHE_SIZE_BYTES = 600L * 1024 * 1024;

    /** default is 500 Mb */
    public static long TILE_TRIM_CACHE_SIZE_BYTES = 500L * 1024 * 1024;
    

       

 5.  osmdroid-android 

          

        1. TileSystem:单独一个包,这个类的作用是处理墨卡投影的项目使用osmdroid瓦片。

               

           这个类主要的关键词就是转换!坐标之间的转换。

           2.osmdroid核心包了算是。

              api包里面主要定义了一些接口,点、mapview、controller、projection等

              event包里面定义了一些事件,比如滑动事件、地图监听事件、缩放事件等等

              包明细如下:

             

               tileprovider包是主要是瓦片提供、包括缓存也在这个包下,可以通过拓展图源的方式显示其他地图,继承OnlineTileSourceBase实现对应方法(将有一篇文章介绍到)

              util主要一些‘工具类’,包括瓦片处理,bitmappool等

              views是关于显示层的一些包括最常用的mapview和controller,何有overlay、polyline和polygon等(只列举了常用的)

              剩下的两个LocationListenerProxy和SensorEventListenerProxy一个是定位相关的代理类,一个是传感器事件的代理类。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值