离线地图解决⽅案,除了买地图数据,使⽤专业的ArcGIS来做外,也可以使⽤GMap.Net来做。
关于GMap的开发教程,可以看我以前的⽂章:
使⽤了GMap⼀年了,也有了⼀些积累,开发了⼀个可以下载ArcGIS、百度、⾕歌、⾼德、腾讯SOSO、天地图、Here等地图的地图下载器。
百度和google地图加载显⽰如下:
百度普通地图:
百度混合地图:
⾕歌普通地图:
⾕歌混合地图:
从⽬前的情况来看,百度的普通的地图数据是更新最快的,但是有些⼩地⽅没有卫星地图,⽽⾕歌⼏乎所有的地⽅都有卫星地图,但是⾕歌中国的地图更新太慢,⽐如说南京已经有3号线和10号线了,⾕歌
地图上就没有。
只要地图能加载显⽰,就可以下载到本地,开发的地图下载器⽀持SQLite、MySQL、MsSQL、PostgreSQL等数据库保存,也可以以固定⽬录组织保存到本地磁盘上,⽀持ArcGIS的WMS切⽚服务的图源使⽤。
下载到本地磁盘的地图:
⽀持的地图下载⽅式:
作文开头和结尾摘抄大全(1)选择⼀个矩形区域下载。
(2)选择某个省、市进⾏下载。
下载到MySQL的地图数据:
⾃⼰扩展的.Net地图控件主要功能:
1)下载百度、⾕歌、⾼德、腾讯、Here、天地图的地图,按区域下载或是省市边界下载。
2)各类画图⼯具:矩形、圆形、多边形、线段、折线段。可以作为电⼦围栏、地图圈选⼯具、地图
画图⼯具使⽤。
3)各种图标:图⽚、图⽚+⽂字说明、gif动态图⽚、带旋转⾓度的箭头、闪动的报警图标
4)类似百度地图的“测距”功能:两点之间的距离,或者根据某个距离在地图上展⽰线段或者多边形。
5)发布离线地图服务:这⾥的离线地图只是地图显⽰服务,将下载的离线地图数据作为Http服务发布在局域⽹内使⽤。这样的离线地图客户端仍然可以使⽤GMap.Net,⽽Web端可以使⽤Openlayers或者是Leaflet等js库做。
更多关于离线web GIS⽅⾯的资料,请参考。
如下是⽤leaflet js做的简单的demo,⽤的是google的地图:
6)GPX数据的读取与展⽰。
7)KML数据的保存与读取展⽰。
8)POI数据查询展⽰:
通过省市名称和关键字查询POI数据,图⽰如下:
9)地址定位:输⼊地址关键字定位到某些点。
输⼊⼀个确定的地址定位到地图上的点。
长期待摊费用摊销10)地址逆解析:点击地图上某点,查询该点的位置。
11)路径导航:通过“起点”和“终点”,查询路径显⽰路径规划。
配置使⽤:fig配置⽂件
<appSettings>
<!--Mysql Server的IP和Port-->
<add key="MySQLServerIP" value="127.0.0.1"></add>
<add key="MySQLServerPort" value="3306"></add>
<!--Mysql Server的数据库名、⽤户名、密码-->
<add key="Database" value="mapcache"></add>
<add key="UserID" value="root"></add>
<add key="Password" value="admin"></add>
<!--地图中⼼点坐标:-->
<!--南京:118.773,32.043-->
<add key="MapCenter" value="118.773,32.043"></add>
<!--本地存储切⽚的路径-->
<add key="TilePath" value="D:\\GisMap"></add>
<!--下载失败时重试的最⼤次数,⽹络状态不好时候可修改为⼀个⼤的整数值,⽐如10-->今年国庆节放几天假从几号到几号
<add key="Retry" value="3"></add>
</appSettings>
⼀些功能说明:
推荐下载范围:
世界:1--5级。中国:5--9级。省:9--12级。市:12--18级。级数超过16后数据会⽐较⼤。
1)下载⽅式:
(1)在“画图⼯具”中选择“矩形”(按着左键拖动⿏标,放开左键完成画图)或者“多边形”(点击左键)画图,双击所画的多边形,进⼊下载配置,选择所需下载的级别即可。
(2)在“区域下载”下点击某个省、市、区(县),双击区域多边形,进⼊下载配置,选择所需下载的级别即可。
2)下载速度:
黄小戈已经改进为多线程下载,显⽰整个切⽚的下载速度。选择某个市的前15级下载还是⽐较快的,16级以后由于图⽚数量巨⼤,下载需要等待较长时间。
3)下载储存⽅式:
内服去除黑素的默认是在MapCache下SQLite数据库⾥(\MapCache\TileDBv5\db),下载后可使⽤相应⼯具打开数据库查看。
如果要保存到MySQL⾥,需要修改对应fig配置⽂件⾥的配置项,数据库”mapcache“要先⼿动建好,表会⾃动创建。
如果选择“本地磁盘”,则以切⽚形式保存到配置⽂件“TilePath”对应的路径⽬录⾥(默认是D:\GisMap)。
4)测试下载的地图是否可⽤:
在“地图访问”中选择“本地缓存”,则地图⾃动切换到离线模式,使⽤本地下载的缓存来访问地图。
5)“拼接图”测试:
在“画图⼯具”中选择“矩形”画图,画要拼接的范围,填⼊要拼接的Zoom,点击“拼接图”,会⾃动在程序运⾏⽬录下⽣成⼀张拼接⼤图。这个拼接图没有集成地理信息,个⼈觉得拼接图没有太⼤意义,在实际应⽤中,要先下载各个zoom下的切⽚,根据坐标信息拼接成⼀个⼤图,再在类似ArcGIS或GeoServer中切⽚发布成服务,这样做太⿇烦,不如直接按ArcGIS或GeoServer的切⽚组织规则下载命名切⽚,再加上对应的配置就可以直接发布服务使⽤。
6)离线切⽚导出,作为ArcGIS或GeoServer中服务使⽤的切⽚:黄勇 买红妹 孙楠
把下载到数据库中的切⽚按ArcGIS或GeoServer的切⽚组织规则导出到本地作为服务的数据使⽤。
7)离线Web服务:
勾选“离线Web服务”,可以将下载的地图切⽚发布为地图底图服务(先下载⾕歌地图,⽤作地图服务的切⽚),可⽤于局域⽹下的Web 项⽬,仅仅⽤于测试。详情参考《》
8)POI查询导出:
联⽹使⽤服务查询POI数据,导出到Excel或者数据库中。⾼德和腾讯的POI可以和地图⽆偏差显⽰,百度的不⾏。
9)地址解析与地址逆解析:
联⽹使⽤⼀些服务获得地址信息。
10)路径导航:
联⽹使⽤⼀些服务查询路径并显⽰。
11)离线地图⽂件“db”的加载
⽤这个下载器下载完的db⽂件只能⽤这个下载器去加载,⽆法⽤C#源码去加载,因为每个GMapProvider⾥的GUID是不同的,对应⽣成的地图的type也是不同的。
下载地址:(更新于2017-7)
项⽬地址:
本软件仅供个⼈学习与科研使⽤,所下载的数据版权归各个地图服务商所有,任何组织或个⼈因数据
使⽤不当造成的问题,软件作者不负责任。
参考:
wwwblogs/luxiaoxun/p/3802559.html
wwwblogs/luxiaoxun/category/513908.html
发布评论