基于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. CF10D/POJ2127 LCIS解题报告

    题目传送门(洛谷)(CF)(POJ) 前言 期末考试前的最后一篇题解,希望期末考  rp++ 奇怪,为什么在CF上能过的代码到POJ上就 听取WA声一片  (不管了) 题目思路 LCIS模版O(n²) ...

  2. Migration-添加表

    public partial class _111111 : DbMigration { public override void Up() { CreateTable( "dbo.Asse ...

  3. springcloud中常用的注解@

    @SpringBootApplication是springboot启动类,包括三个注解,他们的作用分别是: @Configuration:表示将该类作用springboot配置文件类 @EnableA ...

  4. 019 Remove Nth Node From End of List 删除链表的倒数第N个节点

    给定一个链表,删除链表的倒数第 n 个节点并返回头结点.例如,给定一个链表: 1->2->3->4->5, 并且 n = 2.当删除了倒数第二个节点后链表变成了 1->2 ...

  5. 【Unity3D】Unity中用C#读取CSV文件

    1.创建csv文件 既然做实验嘛,没有资源怎么行,自己徒手写个csv文件吧,打开Numbers工具,新建一个表格文件,我的文件编辑截图如下: 创建完成后,导出成csv格式,我这里文件名为test.cs ...

  6. nginx开启HSTS让浏览器强制跳转HTTPS访问

    在上一篇文章中我们已经实现了本地node服务使用https访问了,看上一篇文章 效果可以看如下: 但是如果我们现在使用http来访问的话,访问不了.如下图所示: 因此我现在首先要做的是使用nginx配 ...

  7. 一步一步配置Spring

    https://blog.csdn.net/tangtong1/article/details/51442757

  8. 性能测试学习第十一天_Analysis

    Analysis的功能:对测试运行结果进行查看,分析和比较 导入分析文件:loadrunner results文件和analysis session文件 Analysis窗口: 1.会话浏览器窗格 2 ...

  9. Java学习笔记--关于面向对象的思考

    1.不可改变的类生成对象以及变量的范围 2. 关键词this的使用 3.用类抽象的思想制作软件 4.通过关系模型建立类 5.使用面向对象的范例来设计程序,遵循类设计指导. 已经学习了:怎么定义类已经创 ...

  10. vue-实现一个购物车结算页面

    这是路由之间的跳转,传递值最好采用传参,而不是用$emit和$on,不起作用 如果实在一个页面中的兄弟组件,可以使用$emit和$on 中间件,eventBus.js 放在components目录下面 ...