osmdroid API解读(二)

osmdroid API解读(二)

osmdroid-android模块 org.osmdroid.config包

1、IConfigurationProvider

/**
* 用于 get/set a configuration provider for osmdroid
*/
public interface IConfigurationProvider {

    //get&set 使用gps位置后、使用非gps位置前,我们需要等待的时间
    long getGpsWaitTime();
    void setGpsWaitTime(long gpsWaitTime);

    //get&set调试模式
    boolean isDebugMode();
    void setDebugMode(boolean debugMode);
    boolean isDebugMapView();
    void setDebugMapView(boolean debugMapView);
    boolean isDebugTileProviders();
    void setDebugTileProviders(boolean debugTileProviders);
    boolean isDebugMapTileDownloader();
    void setDebugMapTileDownloader(boolean debugMapTileDownloader);

    //默认为false
    boolean isMapViewHardwareAccelerated();
    /**
    * 在mapview创建或注入布局前设置
    * 如果你仅仅使用单个点图标,你可以不用设置为true,转而使用polylines, paths, polygons,并设置为false
    */
    void setMapViewHardwareAccelerated(boolean mapViewHardwareAccelerated);

    String getUserAgentValue();
    void setUserAgentValue(String userAgentValue);
    Map<String, String> getAdditionalHttpRequestProperties();

    /**
    * 初始化内存中瓦片尺寸,通过调用{@link LRUMapTileCache#ensureCapacity(int)}尺寸可以增加,
    * 瓦片缓存至少3x3
    * used by MapTileCache
    */
    short getCacheMapTileCount();
    void setCacheMapTileCount(short cacheMapTileCount);

    /**
     * 下载瓦片的线程数
    */
    short getTileDownloadThreads();
    void setTileDownloadThreads(short tileDownloadThreads);

    /**
    * 用于系统缓存和sqlite缓存的线程数
    */
    short getTileFileSystemThreads();
    void setTileFileSystemThreads(short tileFileSystemThreads);
    //下载队列的最大尺寸
    short getTileDownloadMaxQueueSize();
    void setTileDownloadMaxQueueSize(short tileDownloadMaxQueueSize);
    //获取瓦片文件系统队列的最大尺寸
    short getTileFileSystemMaxQueueSize();
    void setTileFileSystemMaxQueueSize(short tileFileSystemMaxQueueSize);

    /**
     * 获取瓦片文件系统缓存最大字节数,默认为600 Mb
    */
    long getTileFileSystemCacheMaxBytes();
    void setTileFileSystemCacheMaxBytes(long tileFileSystemCacheMaxBytes);

    /**
    * 当缓存尺寸超过maxCacheSize,瓦片会自动移除。默认字节为500Mb
    */
    long getTileFileSystemCacheTrimBytes();
    void setTileFileSystemCacheTrimBytes(long tileFileSystemCacheTrimBytes);


    SimpleDateFormat getHttpHeaderDateTimeFormat();
    void setHttpHeaderDateTimeFormat(SimpleDateFormat httpHeaderDateTimeFormat);
    Proxy getHttpProxy();
    void setHttpProxy(Proxy httpProxy);

    /**
    * osmdroid文件基本路径. Zip/sqlite/mbtiles/etc在此路径下,通常为/sdcard/osmdroid
    * Note: 也用于离线文件资源
    */
    File getOsmdroidBasePath();
    void setOsmdroidBasePath(File osmdroidBasePath);

    /**
    * 默认为 getOsmdroidBasePath() + "/tiles"
    * 当 @{link {@link org.osmdroid.views.MapView}}被创建时改变有效,改变后只有重启地图或{@link org.osmdroid.views.MapView#setTileProvider(MapTileProviderBase)}被改变或重建后才有效。
    */
    File getOsmdroidTileCache();
    void setOsmdroidTileCache(File osmdroidTileCache);

    String getUserAgentHttpHeader();
    void setUserAgentHttpHeader(String userAgentHttpHeader);

    /**
    * 从shared preferences载入configuration,如果preferences没有被定义则采用默认值
    */
    void load(Context ctx, SharedPreferences preferences);
    void save(Context ctx, SharedPreferences preferences);

    long getExpirationExtendedDuration();
    void setExpirationExtendedDuration(long period);
    void setExpirationOverrideDuration(Long period);
    Long getExpirationOverrideDuration();


    /**
     * 默认动画时间
     */
    void setAnimationSpeedDefault(int durationsMilliseconds);
    int getAnimationSpeedDefault();
    void setAnimationSpeedShort(int durationsMilliseconds);
    int getAnimationSpeedShort();

    boolean isMapViewRecyclerFriendly();
    void setMapViewRecyclerFriendly(boolean enabled);
}

2、Configuration

/**
* osmdroid Configuration配置
*/

public class Configuration {
    private static IConfigurationProvider ref;

    /**
    * 获取当前config provider.如果没有会设置一个默认的值
    */
    public static synchronized IConfigurationProvider getInstance() {
        if (ref==null)
            ref = new DefaultConfigurationProvider();
        return ref;
    }

    /**
    * 在MapView被实例化之前调用
    * @see android.view.LayoutInflater
    */
    public static void setConfigurationProvider(IConfigurationProvider instance){
        ref = instance;
    }
}

3、DefaultConfigurationProvider

public class DefaultConfigurationProvider implements IConfigurationProvider{
    . . . 
    //初始化 IConfigurationProvider提到所有字段的值
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值