基于GMap.NET地图下载器的开发和研究
基于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地图下载器的开发和研究的更多相关文章
- .NET破解之太乐地图下载器【非暴破】
不知不觉,接触破解逆向已经三个月了,从当初的门外汉到现在的小白,这个过程只有经历过才知道其中的苦与乐: 有无知.困惑.痛苦.惊喜.彻悟.欣慰…… 有无助的软件脱壳,茫然的代码分析,有无趣的反复测试, ...
- 基于gmap.net制作离线地图下载器
网上已有大量文章介绍gamp.net和离线下载相关的文章了.我就不在介绍gmap相关的文章了,这里着重介绍一下下载相关原理.其实gmap.net本身已自带下载工能,只是离线图片下载到sqlit中,现将 ...
- C#版谷歌地图下载器设计与实现
关于如何将地球经纬度坐标系统转换成程序中常用到的平面2D坐标系统,网上的文章很多,参考http://www.cnblogs.com/beniao/archive/2010/04/18/1714544. ...
- 基于iOS 10、realm封装的下载器
代码地址如下:http://www.demodashi.com/demo/11653.html 概要 在决定自己封装一个下载器前,我本以为没有那么复杂,可在实际开发过程中困难重重,再加上iOS10和X ...
- <基于Qt与POSIX线程>多线程下载器的简易搭建
原创博客,转载请联系博主! 本项目已托管到本人Git远程库:https://github.com/yue9944882/Snow 项目目标 Major Functionality 开发环境: Ce ...
- GIS-003-在线地图下载及应用
目前在线地图有谷歌.高德.百度.Bing.soso.天地图.OpenStreet.ArcGIS Online等.在企业应用中,一般需要物理网络隔绝,就有必要下载地图数据之后模拟发布,可以选择下载谷歌影 ...
- 基于HTTP协议的下载功能实现
超文本传输协议 (HTTP-HyperText Transfer Protocol)是一种使用极为广泛的协议,它由请求和响应构成,是一种无状态的应用层协议.设计HTTP协议的初衷是为了提供一种传输HT ...
- Java多线程的下载器(1)
实现了一个基于Java多线程的下载器,可提供的功能有: 1. 对文件使用多线程下载,并显示每时刻的下载速度. 2. 对多个下载进行管理,包括线程调度,内存管理等. 一:单个文件下载的管理 1. 单文件 ...
- 电子地图/卫星地图下载并转存为jpg图片
1.下载水经注万能地图下载器破解版 http://download.csdn.net/download/hyb2012/8714725,此软件为绿色免安装且免注册 2.下载后解压缩后,运行sgwn.e ...
随机推荐
- PAT天梯赛L3-004 肿瘤诊断
题目链接:点击打开链接 在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环.给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积. 输入格式: 输入第一行给出4个正整数:M.N.L.T,其中M和N是每 ...
- POJ1046 Color Me Less
题目来源:http://poj.org/problem?id=1046 题目大意: 在RGB颜色空间中,用下面的公式来度量两个颜色值的距离. 现给出16个RGB表示的颜色,和一些用于测试的颜色,求被测 ...
- Word中图片自动编号且与文中引用的编号对应
当我们在进行大篇幅 word 文档的编写时, 为了节约修改文章中图片所花费的大量时间, 可以将图片自动编号,且让文中引用的顺序跟着图片顺序的变化而变化,具体操作如下: 1. 将鼠标定在欲加编号的下方, ...
- tcp 三次握手,四次挥手几常见面试题
TCP报文首部 源端口和目的端口,各占2个字节,分别写入源端口和目的端口: 序号,占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号.例如,一段报文的序号字段值是 301 ,而携带的数据共有 ...
- 多重背包(dp专题)
题目大意:输入n,代表有n种数,接下来n个数代表n种数,再接下来n个数代表每种数有多少个,在输入K,代表用这些数要加成的和 问你是否能加为K,能输出yes,不能输出no 这是一个典型的多重背包问题,可 ...
- Storm概念学习系列之storm的设计思想
不多说,直接上干货! storm的设计思想 在 Storm 中也有对流(Stream)的抽象,流是一个不间断的.无界的连续 Tuple(Storm在建模事件流时,把流中的事件抽象为 Tuple 即元组 ...
- WebSocket协议入门介绍
目录 目录 WebSocket协议是什么 WebSocket是应用层协议 WebSocket与Http的区别 为什么要使用WebSocket 如何使用WebSocket 客户端API 在客户端使用We ...
- Java中的Enum(枚举)用法介绍
1. 关于Java Enum:学过C/C++等语言的人,应该都对Enum类型略知一二.Enum一般用来表示一组相同类型的常量.如性别.日期.月份.颜色等.对这些属性用常量的好处是显而易见的,不仅可以保 ...
- java环境安装(win7)
首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-7u13-windows-x64 接下来主要讲怎么配置 java 的环境变量,也是为了以后哪天自己忘记了做个备份 1.进入&qu ...
- Xcode Ghost
Xcode Ghost,是一种手机病毒,主要通过非官方下载的 Xcode 传播,能够在开发过程中通过 CoreService 库文件进行感染,使编译出的 App 被注入第三方的代码,向指定网站上传用户 ...