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提到所有字段的值
}