1.Cesium中文网——如何开发一款地工具[一]
2.LINUXä¸UNIXåºå«å¨åª
Cesium中文网——如何开发一款地工具[一]
Cesium中文网: cesiumcn.org/ | 国内快速访问: cesium.coinidea.com/
Cesium中文网的源码朋友们其中一个关注点是:独立开发一款地图(瓦片图)下载工具。
我们将通过多个博客文章[所有用户]和视频[付费用户]的源码形式来拆分并介绍这个主题。源代码将不断更新并提交到Github,源码地址:github.com/hujiulin/Map...。源码源代码对所有用户开放,源码若您觉得对您有帮助,源码tsc源码请给予一个star以示鼓励。源码
重剑无锋,源码大巧不工。源码
这个工具将以C#和JavaScript的源码形式呈现。编程语言只是源码形式,理解其内部逻辑和流程,源码您也可以使用Java,源码非法获取软件源码Python,源码PHP或其他开发语言进行实现。源码
目前开源的工具非常简单(简陋),但我将定期更新和维护代码。如果您有任何问题,可以在Github上提交issue,难度系数公式源码或在公众号: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/
LINUXä¸UNIXåºå«å¨åª
大家å¬å«äººä»ç»èªå·±çUbuntuæ¶ï¼ä¼å¬å°âæçæä½ç³»ç»æ¯Linuxçâãå ¶å®ï¼è¿æ ·ä»ç»æ¯ç¼ºä¹ä¸¥è°¨æ§æ»´ãæ们åªè¦ç¥é两ç¹ï¼åºæ¬ä¸å°±ææ¸ æ¥LinuxåUbuntuçå ³ç³»,以ä¸æ¯æå客èå¸å¯¹äºè çåºå«ç»èåæï¼
1. ä¸¥æ ¼æ¥è¯´ï¼Linux并ä¸æ¯æä½ç³»ç»ï¼èæ¯ä¸ä¸ªæä½ç³»ç»çå æ ¸ï¼ä¸¥è°¨ä¸äºå¯ä»¥è¯´ï¼linux ä¸è¬æ GNU å¥ä»¶å ä¸ linux å æ ¸ã
2. Ubuntuåºäºlinuxå æ ¸çæ¡é¢PCæä½ç³»ç»ï¼æ¯è¯ä¸å欢称Ubuntuæ¯ä¸ä¸ª linux åè¡çï¼å 为debianï¼å ¶å®ä¹æ¯ä¸æ¬¾æä½ç³»ç»ï¼ æ¯ linux çä¸ä¸ªåè¡çï¼è ubuntu æ¯å±äº debian ç³»åçä¸ä¸ªåæ¯ï¼æ以...ï¼ã
æ·±å ¥ç解ä¸ï¼
1. Linuxåºç¨ç¨åº
ä¸ä¸ªå¥½çæä½ç³»ç»ä¼æä¾ä¸å¥æ¹ä¾¿äºç¨æ·ä½¿ç¨ç³»ç»çåºç¨ç¨åºï¼å¦ææ¬ç¼è¾å¨ãåå ¬å¥ä»¶ãInternetå·¥å ·ãæ°æ®åºçã
2. Linuxæ件系ç»
æ件系ç»æ¯æ件åæ¾å¨åå¨è®¾å¤ï¼å¦ç£çï¼ä¸çç»ç»æ¹æ³ãå¦EXT2ãEXT3ãFATãFATãVFATçã
3. Linux Shell
Shellæ¯æä½ç³»ç»ç³»ç»çç¨æ·çé¢ï¼æä¾äºç¨æ·ä¸å æ ¸è¿è¡äº¤äºæä½çä¸ç§æ¥å£,æ¯ä¸ä¸ªå½ä»¤è§£éå¨ãå®æ¥æ¶ç¨æ·è¾å ¥çå½ä»¤å¹¶æå®éå ¥å æ ¸å»æ§è¡ã
4. Linuxå æ ¸
å æ ¸æ¯æä½ç³»ç»çæ ¸å¿ãä¸ä¸ªæä½ç³»ç»æ¯éè¦æ§è¡ä¸äºä»»å¡ï¼å¦è¯·æ±å åèµæºãæ§è¡è®¡ç®, è¿æ¥ç½ç»,çç. Linuxå æ ¸å°±è´è´£å¤çææè¿æ ·ç请æ±ï¼å°±å人ç大èä¸æ ·ã
Linuxå æ ¸ä»åè½ä¸è®²å ·æäºå¤§æ¨¡åååè½ï¼è¿ç¨ç®¡çãå å管çãæ件系ç»ç®¡çã设å¤æ§å¶åç½ç»ç®¡çã
4.1 è¿ç¨ç®¡ççä½ç°ï¼
Linuxå æ ¸è´è´£è¿ç¨å建åéæ¯, 并å®æè¿ç¨ä¹é´çéä¿¡ï¼ä»¥åè¿ç¨çè¾å ¥åè¾åº.èä¸ï¼è¿ç¨ç®¡çæ§å¶äºå¤ä¸ªè¿ç¨å¯¹Socä¸çä¸ä¸ªæè å¤ä¸ªcpuèµæºç使ç¨
4.2 å å管ç
å åèµæºç使ç¨çç¥å¯¹æä½ç³»ç»æ§è½ä½ç°æ¥è¯´ï¼å°¤ä¸ºéè¦ã å æ ¸å¨æéçå åèµæºä¸ï¼ä¸ºæ¯ä¸ä¸ªè¿ç¨å»ºç«äºä¸ä¸ªèæå°å空é´ã å æ ¸çä¸ååè½é¨åä¸å å管çåç³»ç»éè¿ä¸å¥å½æ°è°ç¨äº¤äº, 使å¾éä¿¡é«æç®åã
4.3 æ件系ç»ç®¡ç
Linuxæä½ç³»ç»ä¸ï¼å ä¹ä»»ä½ä¸è¥¿é½å¯çä½ä¸ºä¸ä¸ªæ件ï¼ä¸åçæ件ï¼. å æ ¸ä¸å¤§é使ç¨kobjectçç»æä½ï¼æ¥æä¸å éç»æåç硬件ç»ç»æä¸ç§å¤å±æ¬¡çæ°æ®ç³»ç»ãå¦å¤, Linux æ¯æå¤ä¸ªæ件系ç»ç±»åãå¦ext4ç
4.4 设å¤æ§å¶
å ä¹ä»»ä½ä¸ä¸ªæä½ç³»ç»æç»é½è¿è¡å¨ä¸ä¸ªç©çå¹³å°ä¸ãå æ ¸ä¸å å«è®¿é®å¹³å°ä¸ç¡¬ä»¶è®¾å¤ç驱å¨ä»£ç ã
4.5 ç½ç»åè½
大é¨åç½ç»æä½ä¸ä¼å ³èå ·ä½çè¿ç¨ï¼å 为æ°æ®å çä¼ è¾æ¯å¼æ¥äºä»¶ãåºç¨ç¨åºè®¿é®æ°æ®å ä¹åï¼å æ ¸å®ææ°æ®å çæ¶éãæ è¯åååçä»»å¡ã
å¦ææ³å¦ä¹ åµå ¥å¼linuxå¯ä»¥å»äºè§£ä¸æå客è¿ä¸éã