基于GMap.NET地图下载器的开发和研究

软件下载地址:https://pan.baidu.com/s/1ay0aOm3fiZ35vlfD8kFYFw

1、地图浏览功能

可以浏览谷歌地图、百度、arcgis、bing地图等多种卫星、道路地图。

2、按照行政区域地图下载

3、地图瓦片存贮到本地,通过本地缓存永久保存地图数据

     public class MemoryCache : IDisposable
{
private FastReaderWriterLock kiberCacheLock;
private readonly KiberTileCache TilesInMemory; public MemoryCache()
{ this.TilesInMemory = new KiberTileCache();
this.kiberCacheLock = new FastReaderWriterLock();
} internal void AddTileToMemoryCache(RawTile tile, byte[] data)
{
if (data != null)
{
this.kiberCacheLock.AcquireWriterLock();
try
{
if (!this.TilesInMemory.ContainsKey(tile))
{
this.TilesInMemory.Add(tile, data);
}
}
finally
{
this.kiberCacheLock.ReleaseWriterLock();
}
}
} public void Clear()
{
this.kiberCacheLock.AcquireWriterLock();
try
{
this.TilesInMemory.Clear();
}
finally
{
this.kiberCacheLock.ReleaseWriterLock();
}
} public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
} private void Dispose(bool disposing)
{
if (this.kiberCacheLock != null)
{
if (disposing)
{
this.Clear();
}
this.kiberCacheLock.Dispose();
this.kiberCacheLock = null;
}
} ~MemoryCache()
{
this.Dispose(false);
} internal byte[] GetTileFromMemoryCache(RawTile tile)
{
this.kiberCacheLock.AcquireReaderLock();
try
{
byte[] buffer = null;
if (this.TilesInMemory.TryGetValue(tile, out buffer))
{
return buffer;
}
}
finally
{
this.kiberCacheLock.ReleaseReaderLock();
}
return null;
} internal void RemoveOverload()
{
this.kiberCacheLock.AcquireWriterLock();
try
{
this.TilesInMemory.RemoveMemoryOverload();
}
finally
{
this.kiberCacheLock.ReleaseWriterLock();
}
} public int Capacity
{
get
{
int memoryCacheCapacity;
this.kiberCacheLock.AcquireReaderLock();
try
{
memoryCacheCapacity = this.TilesInMemory.MemoryCacheCapacity;
}
finally
{
this.kiberCacheLock.ReleaseReaderLock();
}
return memoryCacheCapacity;
}
set
{
this.kiberCacheLock.AcquireWriterLock();
try
{
this.TilesInMemory.MemoryCacheCapacity = value;
}
finally
{
this.kiberCacheLock.ReleaseWriterLock();
}
}
} public double Size
{
get
{
double memoryCacheSize;
this.kiberCacheLock.AcquireReaderLock();
try
{
memoryCacheSize = this.TilesInMemory.MemoryCacheSize;
}
finally
{
this.kiberCacheLock.ReleaseReaderLock();
}
return memoryCacheSize;
}
}
}

技术交流  省厓 QQ:2252224326  2252224326@qq.com 版权所有 http://blog.sina.com.cn/u/6029512413

基于GMap.NET地图下载器的开发和研究的更多相关文章

  1. .NET破解之太乐地图下载器【非暴破】

    不知不觉,接触破解逆向已经三个月了,从当初的门外汉到现在的小白,这个过程只有经历过才知道其中的苦与乐: 有无知.困惑.痛苦.惊喜.彻悟.欣慰…… 有无助的软件脱壳,茫然的代码分析,有无趣的反复测试, ...

  2. 基于gmap.net制作离线地图下载器

    网上已有大量文章介绍gamp.net和离线下载相关的文章了.我就不在介绍gmap相关的文章了,这里着重介绍一下下载相关原理.其实gmap.net本身已自带下载工能,只是离线图片下载到sqlit中,现将 ...

  3. C#版谷歌地图下载器设计与实现

    关于如何将地球经纬度坐标系统转换成程序中常用到的平面2D坐标系统,网上的文章很多,参考http://www.cnblogs.com/beniao/archive/2010/04/18/1714544. ...

  4. 基于iOS 10、realm封装的下载器

    代码地址如下:http://www.demodashi.com/demo/11653.html 概要 在决定自己封装一个下载器前,我本以为没有那么复杂,可在实际开发过程中困难重重,再加上iOS10和X ...

  5. <基于Qt与POSIX线程>多线程下载器的简易搭建

    原创博客,转载请联系博主! 本项目已托管到本人Git远程库:https://github.com/yue9944882/Snow 项目目标  Major Functionality 开发环境:  Ce ...

  6. GIS-003-在线地图下载及应用

    目前在线地图有谷歌.高德.百度.Bing.soso.天地图.OpenStreet.ArcGIS Online等.在企业应用中,一般需要物理网络隔绝,就有必要下载地图数据之后模拟发布,可以选择下载谷歌影 ...

  7. 基于HTTP协议的下载功能实现

    超文本传输协议 (HTTP-HyperText Transfer Protocol)是一种使用极为广泛的协议,它由请求和响应构成,是一种无状态的应用层协议.设计HTTP协议的初衷是为了提供一种传输HT ...

  8. Java多线程的下载器(1)

    实现了一个基于Java多线程的下载器,可提供的功能有: 1. 对文件使用多线程下载,并显示每时刻的下载速度. 2. 对多个下载进行管理,包括线程调度,内存管理等. 一:单个文件下载的管理 1. 单文件 ...

  9. 电子地图/卫星地图下载并转存为jpg图片

    1.下载水经注万能地图下载器破解版 http://download.csdn.net/download/hyb2012/8714725,此软件为绿色免安装且免注册 2.下载后解压缩后,运行sgwn.e ...

随机推荐

  1. js index of()用法

    含义: indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置.(工作中常用) 提示和注释: 注释:indexOf() 方法对大小写敏感! 注释:如果要检索的字符串值没有出现,则该方 ...

  2. PHP 获取acm近期比赛

    <?php // author: Moore Jiang. ini_set('display_errors',1); //错误信息 ini_set('display_startup_errors ...

  3. 2017 ACM/ICPC Asia Regional Shenyang Online transaction transaction transaction

    Problem Description Kelukin is a businessman. Every day, he travels around cities to do some busines ...

  4. mybatis批量处理sql

    转载大神 https://www.cnblogs.com/xujingyang/p/8301130.html

  5. Testlink安装配置时常见问题解决

    1.windows下安装testlink,进入安装页面后,在检查一些相关配置环境时报错,如下: Checking if /var/testlink/logs/ directory exists [S] ...

  6. 006 ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  7. vim 编辑器设置tab缩进

    创建 ~/.vimrc文件,写入 set tabstop=4 ,保存 原文

  8. Hie with the Pie(poj3311)

    题目链接:http://poj.org/problem?id=3311 学习博客:https://blog.csdn.net/u013480600/article/details/19692985 H ...

  9. java简单使用netty

    一 整合 由于本人的学过的技术太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的github项目地址 https://github.com/247292980/spri ...

  10. <Linux系统uname命令用法>

    uname命令:操作系统信息的显示 uname 命令主要用于显示操作系统的信息,包括版本.平台的信息. 它的参数主要有以下: -a 显示全部信息 -s 显示内核名称 -n 显示主机名 -r 显示当前系 ...