1.Cesium中文网——如何开发一款地工具[一]
Cesium中文网——如何开发一款地工具[一]
Cesium中文网: cesiumcn.org/ | 国内快速访问: cesium.coinidea.com/
Cesium中文网的朋友们其中一个关注点是:独立开发一款地图(瓦片图)下载工具。
我们将通过多个博客文章[所有用户]和视频[付费用户]的形式来拆分并介绍这个主题。源代码将不断更新并提交到Github,地址:github.com/hujiulin/Map...。源代码对所有用户开放,若您觉得对您有帮助,Java电台源码请给予一个star以示鼓励。
重剑无锋,大巧不工。
这个工具将以C#和JavaScript的形式呈现。编程语言只是形式,理解其内部逻辑和流程,您也可以使用Java,qt creator源码安装Python,PHP或其他开发语言进行实现。
目前开源的工具非常简单(简陋),但我将定期更新和维护代码。如果您有任何问题,可以在Github上提交issue,bbs论坛源码ssh或在公众号:Cesium中文网;QQ群:;论坛: cesium.coinidea.com/上留言和提问。
准备工作:
找到自己熟悉的一门开发语言,它支持:
一般来说,现代的开发语言都支持上述大部分功能。本文选择的是C#。在整个主题的微信展示源码中部,会引入JavaScript。
瓦片图服务器:
本文选择的是百度地图,其实大部分的瓦片图服务器都会有x, y, z(level)三个参数,百度地图的URL Pattern是:online{ 0}.map.bdimg.com/onlinelab...{ 1}&y={ 2}&z={ 3}&styles=pl&udt=&scaler=1&p=0
如果我们把x=1, y=1, z=3,在浏览器打开上述URL
online0.map.bdimg.com/o...
样例瓦片图
既然我们已经知道了瓦片图的生成规则,那我们只要指定具体的微趣测试 源码下载链接,我们就可以下载对应的了。C#的核心下载代码是,这里代码可以轻易地在网络上搜索到:
瓦片图批量下载:
接下来我们要做的是:
之前提到过地图的核心思想是四叉树,所以我们可以再次简单的处理,认为瓦片图也是四叉树构成的,一共分为级(网上可查)左右。那么
levelminX~maxXminY~maxY~~~~~~4…n1~2^(n-1)1~2^(n-1)
四叉树
批量下载的核心代码如下:
上述的运行代码肯定能下载,但是有很多问题。这些问题将在下一步中进行讨论。
当前软件界面
下载结果
下一步:
上面的这些问题将在后续的文章中进行介绍。
声明:
一般来说,地图服务器需要很大的存储资源和带宽资源,本文仅从学术角度和大家探讨现在的下载软件内部原理,如有错误欢迎大家指正。
Again: Github地址:github.com/hujiulin/Map...。源代码对所有用户开放,如果大家觉得有益,请轻轻地给一个star进行鼓励。
本文和软件仅做学术交流,严禁用于商业用途。
Cesium中文网交流QQ群:
Cesium中文网: cesiumcn.org/ | 国内快速访问: cesium.coinidea.com/