基于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. IOS 贝塞尔曲线切割圆角

    写一个UIView扩展 1. .h文件 @interface UIView (Corner) - (void)setCornerWithType:(UIRectCorner)type Radius:( ...

  2. java程序生成二维码

    在物联网的时代,二维码是个很重要的东西了,现在无论什么东西都要搞个二维码标志,唯恐落伍,就差人没有用二维码识别了.也许有一天生分证或者户口本都会用二维码识别了.今天心血来潮,看见别人都为自己的博客添加 ...

  3. PHPExcel探索之旅---阶段三 绘制图表

    利用PHPExcel插件进行绘制图表 <?php /** * 使用PHPExcel插件在excel文件中利用其中的数据建立折线图 * */ $dir = dirname(__FILE__); r ...

  4. TcxGrid Column动态添加Image

    MyCol := TcxColumn.Create; ... MyCol.PropertiesClass := TcxImageProperties; ImageProps := TcxImagePr ...

  5. c++概念字符串操作 (转)

    本文转自:http://www.jb51.net/article/37410.htm 一.char_traits 字符特征类 1)意义:包装特定串元素的通用行为界面,以便容器实现时依据特征信息而执行特 ...

  6. Python3基础(6)面向对象编程、异常处理

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  7. sql server 分析

    查询指令,查询数据库的版本  SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPE ...

  8. JQuery使用正则表达式验证手机号,邮箱,身份证(含有港澳台),网址

    自己对正则验证也没系统用过,这次自己做个demo,一下子把这些全都用上了,下次有需要直接来拿了. 以下代码是在页面使用JQuery进行验证的,也有在后台进行验证的,可以试试,都一样的原理. 直接上代码 ...

  9. (转载)ASP.NET Quiz Answers: Does Page.Cache leak memory?

    原文地址:http://blogs.msdn.com/b/tess/archive/2006/08/11/695268.aspx "We use Page.Cache to store te ...

  10. 【Shell脚本学习23】Shell函数参数

    在Shell中,调用函数时可以向其传递参数.在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数... 带参数的函数示例: #!/bin/bash funWit ...